我正在尝试在每个keyup事件上更新一个模型。该模型的属性将在模板中使用。所以它们应该在页面加载之前定义。我已经将它们定义为null
。但是当输入一些内容时,我无法从控制台中读取更新的属性。
正确的做法是什么?我遗漏了什么?
登录视图片段:
events: {
'keyup input' : 'updateModel',
'click #loginbutton' : 'login',
'click #renderregisterbutton' : 'render_register',
},
updateModel: function(e){
e.preventDefault();
var elm = e.target;
FormsDataModelInst[ elm.id ] = $( elm ).val();
this.model.set( FormsDataModelInst );
console.log( "1-FormsDataModelInst:" + JSON.stringify( FormsDataModelInst.attributes ) );
console.log( "2-this.model.set(...):" + JSON.stringify(this.model.attributes) );
console.log( e );
console.log( e.target );
console.log( elm );
console.log( elm.id );
console.log( $( elm ).val() );
},
表单数据模型:
define([
'underscore',
'backbone',
],
function(_, Backbone) {
var FormsDataModel = Backbone.Model.extend({
urlRoot: null,
defaults: {
username: null,
phone: null,
email: null,
},
});
return new FormsDataModel();
});
1条答案
按热度按时间yacmzcpb1#
应使用行
而不是线
这就解决了这个问题。使用 Backbone 网的实用程序,如set(),因为只有其他模型被设置和保存等。FormsDataModelInst的模型也是一个 Backbone 网模型。