2013-04-29 170 views
2

不幸的是,我遇到了問題以使我的綁定正常工作。所選值的屬性訪問問題

這裏是我的ViewModel這與JSON對象列表初始化:

function ViewModel() { 
    this.chains = ko.observableArray(); 
    this.selectedChain = ko.observable(); 
} 
var model = new ViewModel(); 

$.ajax({ 
    url: "/GetAll/Chains", 
    success: function (result) { 
     model.chains(result); 
     ko.applyBindings(model); 
    } 
}); 

的,我認爲結合是這樣的:

<select data-bind = " 
    options: chains, 
    optionsText: function(item) { return item.BusinessModel['Name'] }, 
    value: selectedChain"></select> 

到這裏一切工作正常。但是現在我遇到了selectedChain屬性在不同元素上的訪問問題。 (例如名稱或ID)。

<input data-bind = "text: selectedChain.Id" /> // not working 

什麼原因導致我無法訪問屬性?在調試器中,我可以看到初始化列表中的對象就像已經被檢測出來的一樣,但是所選擇的值會丟失數據!

感謝您的幫助!

回答

3

selectedChain對象是可觀察的。因此,要獲取可觀察內容(例如「Id」屬性),必須添加「()」,如下所示:

<input data-bind = "text: selectedChain().Id" />