2016-04-25 85 views
0

我有一個屬性爲observable的viewmodel。 我有一個從服務器端驗證返回的屬性名稱和錯誤列表。我需要根據屬性名稱訪問observable並設置錯誤。我想使這個通用。基於屬性名稱動態觀察的敲除訪問

視圖模型:

var model = ko.validatedObservable({reason: ko.observable()}); 

我需要做這樣的事情:

var propName = "reason"; 
model[propName]("Something random"); 

我可以動態地訪問可觀察到的這種方式? (不起作用)。

回答

0

想想這樣:'model'是一個用對象加載的可觀察變量。這表明,我們應該讀觀察到,然後再訪問該對象的屬性:

var model = ko.validatedObservable({ reason: ko.observable() }); 
var propName = "reason"; 
model()[propName]("Something random"); 

通知我讀模型作爲觀察到的(模型()),然後訪問該對象的屬性(模型()[PROPNAME ])。