2013-04-28 70 views
1

我有一個可以傾向於false(默認)或作爲值的對象的observable。 以下代碼塊根據所觀察到的Knockout.js if語句布爾測試

 <!-- ko: if peer() --> 
     <div id="chatbox" > 
      <div id="textbox">Should be invisible</div> 
     </div> 
     <!-- /ko --> 
     <!-- ko: ifnot peer() --> 
     <div id="banner" >Should be visible</div> 
     <!-- /ko --> 

和可觀察到的值被定義爲

排列HTML結構
function T(){ 
     this.peer = ko.observable(false); 
    }; 
    ko.applyBindings(new T()); 

兩者「應該是可見的」和「應該是不可見的」被顯示在頁。在條件允許的情況下,我也試過沒有「()」,但結果仍然是一樣的。請參閱http://jsfiddle.net/zSKhN/

我在做什麼錯?

回答

4

你剛纔把冒號放錯了。 ko: if應該ko if:等,標記應該是這樣的:

<!-- ko if: peer() --> 
<div id="chatbox" > 
    <div id="textbox">Should be invisible</div> 
</div> 
<!-- /ko --> 
<!-- ko ifnot: peer() --> 
<div id="banner" >Should be visible</div> 
<!-- /ko --> 

這裏是你的榜樣的更新的jsfiddle:http://jsfiddle.net/zSKhN/

+0

哎呀!謝謝。 – hinoglu 2013-04-28 22:52:09

+0

沒問題。當你被困住時,這樣的細節很容易錯過,每天發生在我身上:) – Christoffer 2013-04-28 22:54:20