2013-04-29 84 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" />