我目前正在尝试构建自己的JS框架作为一种学习方式。我创建了一个制作新模型的方法:
var myModel = new $n.model.make({
data: {
id: _contentID,
name: $('#frm_content_name').val()
},
route: '/my/path',
callback: function(){}
});
make()函数很简单:
$n.model.make = function(obj){
var self = this;
self.data = obj.data;
self.route = obj.route;
self.callback = obj.callback;
}
如您所见,name参数被分配给表单输入字段的值。如果我在UI上更改此输入字段值,则name参数仍将分配给输入字段的原始值,因此,如果我尝试将数据保存到数据库,则不会发生任何更改。
一旦我建立了模型,有什么方法可以将数据参数“重新绑定”到指定的表单字段以获取最新信息?
答案 0 :(得分:0)
如评论中所述,您可以这样做:
data: {
id: _contentID,
name: function() {
return $('#frm_content_name').val();
}
},
调用data.name()
始终会获取最新信息。另一种方式是:
data {
id: _contentID,
name: $('#frm_content_name')
},
现在您需要致电data.name.val()
;我个人并不喜欢这个,因为缺少封装。
答案 1 :(得分:0)
我找到了我想要的答案 - 双向数据绑定。以下是我用来解决问题的教程:http://www.lucaongaro.eu/blog/2012/12/02/easy-two-way-data-binding-in-javascript/