2017-06-19 8 views
0

Ich möchte den Status der sichtbaren Eigenschaft nach Änderung ändern.KnockoutJS Wie beobachtet man Objekteigenschaften?

Mein Code (nicht):

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"> 

Was mache ich falsch?

+1

'is_root' muss sein' ko.observable (true) '. Jede Eigenschaft, die "dynamisch" sein soll, sollte "beobachtbar" sein. – user3297291

Antwort

0

Objekt hat beobachtbar sein:

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); 
    } 
} 

dann würden Sie rufen:

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> 
Verwandte Themen