2012-12-04 86 views
1

我目前正在嘗試構建自己的JS框架作爲學習的方式。我創建了一個製備方法,像這樣的新模式:如何重新綁定變量賦值

var myModel = new $n.model.make({ 
    data: { 
     id: _contentID, 
     name: $('#frm_content_name').val() 
    }, 
    route: '/my/path', 
    callback: function(){} 
}); 

本作()函數是簡單的:

$n.model.make = function(obj){ 

    var self = this; 

    self.data = obj.data; 
    self.route = obj.route; 
    self.callback = obj.callback; 

} 

正如你所看到的,名稱參數被分配到一個表單輸入字段的值。如果我在UI上更改此輸入字段值,名稱參數仍將分配給輸入字段的原始值,所以如果我嘗試將數據保存到數據庫,則沒有任何更改。

一旦我建立了我的模型,有什麼方法可以將數據參數「重新綁定」到指定的表單域以獲取最新信息?

+1

爲什麼不把你的對象屬性設置爲引用字段本身,然後在需要時檢索它的值? – nnnnnn

+0

我可能有20個或更多的表單字段在模型中被引用。當我在通用的saveData()函數中有數據定義時它會更容易,並且它會在保存之前進行綁定。在我看來,擁有一個專用的模型只會讓事情複雜化,除非我忽略了這一點。 – Freddie

回答

0

正如在評論中提到,你可以這樣做:

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

調用data.name()將始終獲取最新信息。另一種方法是:

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

現在您需要致電data.name.val();我個人不太喜歡這個,因爲缺少封裝。