如何重新绑定变量赋值

时间:2012-12-04 12:24:56

标签: javascript model-view-controller

我目前正在尝试构建自己的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参数仍将分配给输入字段的原始值,因此,如果我尝试将数据保存到数据库,则不会发生任何更改。

一旦我建立了模型,有什么方法可以将数据参数“重新绑定”到指定的表单字段以获取最新信息?

2 个答案:

答案 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/