1

我有一个 observable 可以有 false (默认),或者一个对象作为值。以下代码块根据 observable 的值排列 html 结构

      <!-- 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 -->

并且可观察的定义为

   function T(){
      this.peer = ko.observable(false);
   };
   ko.applyBindings(new T());

“应该可见”和“应该不可见”都显示在页面上。我也尝试在 if 条件中不使用“()”,但结果仍然相同。请参阅http://jsfiddle.net/zSKhN/

我究竟做错了什么?

4

1 回答 1

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/

于 2013-04-28T22:46:18.147 回答