2017-06-19 153 views
0

我想在更改复选框状态后更改可见属性。KnockoutJS如何观察对象属性?

我的代码(不行):

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

'is_root'必须是'ko.observable(真) '。你想成为“动态”的任何属性应该是“可观察的”。 – user3297291

回答

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>