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 でこの入力フィールドの値を変更すると、名前パラメーターは入力フィールドの元の値に割り当てられたままになるため、データを DB に保存しようとしても何も変更されません。

モデルを確立したら、データ パラメータを割り当てられたフォーム フィールドに「再バインド」して最新の情報を取得するにはどうすればよいですか?

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

私が探していた答えが見つかりました - 双方向のデータバインディングです。私の問題を解決するために使用したチュートリアルは次のとおりです

于 2013-02-22T15:26:08.410 に答える