0

使用 Polymer 入门套件,我试图从 JS 触发路线更改,但无法使其正常工作。尽管路线发生了变化,但在我在浏览器中再次前进和前进后,路线不再被触发(page.js 无法读取读取长度),这是更改路线的正确方法吗?

(function() {
    Polymer({
        is: 'my-greeting',

        properties: {
            greeting: {
                type: String,
                value: 'Enter username',
                notify: true
            },
            pass:{
                type:String,
                value: '***',
                notify: true
            }
        },
        buttonClicked : function(){            
            this.doLogin();
        },
        doLogin : function(){
            console.log(this.greeting);            
            app.myFirebaseRef.authWithPassword({
                    "email": this.greeting,
                    "password": this.pass
                }, function(error, authData) {
                    if (error) {
                        console.log("Login Failed!", error);
                    } else {

                        // THIS IS IT

                        app.route = 'users';                            
                        history.pushState({customurl:'users'}, null, 'users');
                    }
                });    
            }            

    });
})();
4

1 回答 1

0

您不应该尝试更改您的观点,app.route = "foo"因为它不会反映在您的网址中

无论如何,可以尝试使用这个元素https://github.com/MartinsThiago/easy-router 来定义你的路线,就像这个例子一样简单

<template is="easy-router" path="#!/route1">
    <span>route1</span>
</template>

<template is="easy-router" path="#!/route1/nested1">
    <span>route1/nested1</span>
</template>

ps:如果您需要使用此元素更改您的网址,请执行location.hash = "#!/your_route"window.location.hash = "#!/your_route"

于 2015-10-10T18:45:52.170 回答