【问题标题】:KnockoutJS How to observe object property?KnockoutJS 如何观察对象属性?
【发布时间】:2017-06-20 17:17:52
【问题描述】:

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

我的代码(不工作):

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

我做错了什么?

【问题讨论】:

  • is_root 必须是 ko.observable(true)。您想要“动态”的任何属性都应该是observable

标签: knockout.js


【解决方案1】:

对象必须是可观察的:

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 2012-12-12
    • 2012-04-20
    • 2021-03-30
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多