2017-06-19 156 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>