1

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

建立模型后,将数据参数“重新绑定”到其分配的表单字段以获取最新信息的好方法是什么?

4

2 回答 2

0

如评论中所述,您可以这样做:

data: {
    id: _contentID,
    name: function() {
        return $('#frm_content_name').val();
    }
},

调用data.name()总是会获取最新信息。另一种方式是这样的:

data {
    id: _contentID,
    name: $('#frm_content_name')
},

现在你需要打电话data.name.val();由于缺少封装,我个人不太喜欢这个。

于 2012-12-04T12:38:09.747 回答
0

我找到了我正在寻找的答案——双向数据绑定。这是我用来解决问题的教程:http ://www.lucaongaro.eu/blog/2012/12/02/easy-two-way-data-binding-in-javascript/

于 2013-02-22T15:26:08.410 回答