2

不幸的是,我的绑定无法正常工作。

这是我使用 JSON 对象列表初始化的 ViewModel:

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

我无法访问属性的原因是什么?在调试器中,我可以看到初始化列表中的对象就像预期的那样,但是所选值丢失了数据!?

感谢您的每一个帮助!

4

1 回答 1

3

selectedChain对象是一个可观察对象。因此,要获取 observable 的内容,例如“Id”属性,您必须添加“()”,如下所示:

<input data-bind = "text: selectedChain().Id" />
于 2013-04-29T22:06:35.773 回答