Knockout嵌套与布尔值的可观察比较

时间:2014-05-07 05:15:27

标签: knockout.js boolean

尽管所有可能的paranthesis组合,可见绑定正在评估错误的值!

我的ViewModel如下:

function ViewModel() {
    this.current_convo = ko.observable(new Message(false));
} 

function Message (val) {
    this.archived = ko.observable(val);
}

我的HTML读取

<button data-bind="visible: (current_convo().archived == false)">Archive</button>

我也尝试过使用

<button data-bind="visible: !(current_convo().archived)">Archive</button>

我确定我错过了一些东西,却无法将手指放在上面!

1 个答案:

答案 0 :(得分:2)

第一个赢了,因为archived是一个可观察的 - 它可以评估为false,但它本身不是false。第二个不会工作,再次因为你否定了可观察性,而不是它的价值。

这应该有效:

<button data-bind="visible: !current_convo().archived()">Archive</button>