2012-04-25 57 views
1

在我的視圖模型,我已經定義: self.myAreasEditMode = ko.observable(false);Knockoutjs觀察的布爾返回奇怪的結果

在我的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 

是基因敲除操縱我的布爾值,或是真實混淆我?我不明白爲什麼(myAreasEditMode == false)返回false,當myAreasEditMode其實是錯誤的。

+1

它看起來像我myAreasEditMode後失蹤括號,所以應該myAreasEditMode()。 Knockout中的括號使我瘋狂!有時候你需要他們,有時候你不需要,我一直把頭髮拉出來 – Hoppe 2012-04-25 01:57:26

+1

是的。只需等到knockoutjs解析html註釋的部分與其他非多項內容綁定到表中的數組/列表。很好,但一個時髦的學習曲線。 – kenny 2012-04-25 01:59:53

回答

3

因爲myAreasEdit是一個函數,並且綁定(myAresEdit == false)正在檢查Funciton是否等於false(這不是真的--Funciton!= false)而不是函數的值。

的標記應該是:

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