在Backbone应用程序中使用keyup事件更新模型
Updating a model with a keyup event in Backbone app
我正在尝试更新每个keyup事件的模型。模型的属性将在模板中使用。因此,它们应该在页面加载之前定义。我将它们定义为null
。但是,当键入某些内容时,我无法读取从控制台更新的内容。
做这件事的正确方法是什么?我遗漏了什么?
loginview片段:
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();
});
应使用行
FormsDataModelInst.set( elm.id, $( elm ).val() );
而不是线路
FormsDataModelInst[ elm.id ] = $( elm ).val();
这就解决了问题。使用主干网的实用程序,如set(),只设置和保存其他模型等。FormsDataModelInst的模型也是主干网模型。
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 访问代码生成的输入元素上的keyup事件
- jQuery调用keyup事件不起作用
- jQuery keyup事件增加-“;函数“;将设置为0
- Keyup事件在easyui上不起作用
- 将变量传递到keyup事件内部
- JS在input标签上使用keyup事件进行搜索
- Keyup 事件侦听器在 Chrome 的 Ominbox 上按下 Enter 时触发
- 如何将 fn 去抖动实现到 jQuery keyup 事件中
- 如何在 keyup 事件上匹配数组中的字符串
- 为什么在Mac浏览器上按下metaKey时,Javascript会丢弃keyUp事件
- jQuery,keyup事件未启动
- 在keyup事件中指定click事件处理程序会导致click事件被多次激发
- 如何在发送keyup事件时避免出现比赛情况
- 通过jQueryAJAX和keyup事件搜索特定的术语
- 在文本区域中的Keyup事件上触发Twitter Bootstrap Popover
- 如何从jQuery插件中附加keyup事件
- jQuery Keyup 事件仅在页面加载时调用
- 黑莓网站:onHardwareKey keyUp 事件
- 如何在 EaselJS 中实现 Keyup 事件