我在这一点上陷入困境。不知道这里出了什么问题。
注意:我是Backbone的新手
查看
var LoginForm = Backbone.View.extend({
template:_.template('<input type="text" id="email" name="email" />'+
'<input type="password" id="password" name="password" />'+
'<input type="button" id="login" value="Login"/>'),
events: {
'click #login':'goIn'
},
initialize: function() {
this.model.on('change', this.render, this);
},
goIn: function() {
this.model.email = $('#email').val();
this.model.passowrd = $('#passowrd').val();
this.model.goIn();
//this.render();
},
render: function() {
var attributes = this.model.toJSON();
this.$el.html(this.template(attributes));
}
});
var loginForm = new LoginForm({model:loginModel});
loginForm.render();
$('#app').append(loginForm.el);
模型
var LoginFormModel = Backbone.Model.extend({
url: 'http://localhost:3000/login',
defaults: {
email:"",
password:""
},
goIn: function(req, resp) {
console.log('hey whats up?'+JSON.stringify(this));
//this.save();
}
});
var loginModel = new LoginFormModel();
我在模型goIn()
中没有任何内容。它只打印{"email":"", "password":""}
。
答案 0 :(得分:1)
使用model.set。在您的视图中,不要使用this.model.email = ...,请使用:
goIn: function() {
this.model.set('email', $('#email').val());
this.model.set('password', $('#passowrd').val());
this.model.goIn();
//this.render();
}
这可以为您提供所需的结果。