2013-04-28 71 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