Knockoutjs可观察布尔返回奇怪的结果

时间:2012-04-25 01:46:54

标签: javascript knockout.js

在我的viewmodel中,我定义了: self.myAreasEditMode = ko.observable(false);

在我的HTML中,我有:

<div>
  editing: <span data-bind="text: myAreasEditMode"></span><span data-bind="visible: myAreasEditMode">show me</span>
  <br />                  
  not editing (done): <span data-bind="text: (myAreasEditMode == false)"></span><span data-bind="visible: (myAreasEditMode == false)">show me</span>
</div>

输出是:

editing: false
not editing (done)?: false 

Knockout是在操纵我的布尔值,还是真实性让我困惑?当(myAreasEditMode == false)实际上是假的时候,我无法弄清楚为什么myAreasEditMode返回false。

1 个答案:

答案 0 :(得分:3)

因为myAreasEdit是一个函数而绑定(myAresEdit == false)正在检查Funciton是否等于false(这不是真的 - 一个Funciton!= false)而不是值{功能。

标记应为:

data-bind="text: (myAreasEditMode() == false)"