我想在Backbone视图中触发事件时移动到另一个页面。
events: {
'click .btn': 'signin'
},
render: function() {
tmp = this.template();
this.$el.html(tmp);
},
signin: function() {
var logi = document.forms['signin']['name'].value;
var mail = document.forms['signin']['email'].value;
var passwd = document.forms['signin']['pass'].value;
var hash = CryptoJS.SHA256(passwd).toString(CryptoJS.enc.Hex);
var tkn = Math.random(9) * 123123123;
_this.navigate('#', true);
var user = new User({
'login': logi,
'email': mail,
'pass': hash,
'token': tkn.toString(),
'recovery': null,
'img': 'default.png'
});
//var user = new User({ 'user': logi, 'pass': hash });
user.save({
success: function(res) {
alert(res.res);
},
error: function(res) {
alert(res.res);
},
wait: true
});
在我的测试中,这不起作用。谁能帮我理解为什么?
重要的代码是_this.navigate('#', true)
。
答案 0 :(得分:0)
为了修改你可以做的网址
router.navigate('url');
如果您还希望为此网址调用路由器的方法,则必须将选项触发器设置为true:
router.navigate("url", {trigger: true});
无论如何,你应该在你的功能结束时调用router.navigate,这样你的用户才能真正创建。
然后,您的视图应该通过您的路由器方法更新此网址。