KnockoutJS如何观察物体属性?

时间:2017-06-19 12:24:43

标签: knockout.js

我想在更改复选框状态后更改可见属性。

我的代码(不工作):

JS:

self.selectedItem = ko.observable({name:'myName', is_root: true})

HTML:

<span data-bind="visible:selectedItem().is_root">element is root!</span>
<input type="checkbox" data-bind="checked: selectedItem().is_root">

我做错了什么?

1 个答案:

答案 0 :(得分:0)

对象必须是可观察的:

var Item = function (data) {
    var self = this;

    self.name = ko.observable('');
    self.is_root = ko.observable(true);

    if (data != null) {
        self.name(data.name);
        self.is_root(data.is_root);
    }
}
然后你会打电话给:

self.selectedItem = ko.observable(new Item({name:'myName', is_root: true}));

HTML:

<div data-bind="with: selectedItem">
    <span data-bind="visible: is_root">element is root!</span>
    <input type="checkbox" data-bind="checked: is_root">
</div>