【问题标题】:Using observableArray element in if condition在 if 条件下使用 observableArray 元素
【发布时间】:2015-05-20 10:04:52
【问题描述】:

我在我的 html 视图中使用了 ko if 语句,它指的是一个淘汰赛 observableArray。

你可以看到my code on jsfiddle

我很好奇为什么这行代码不起作用?

<!-- ko if: numbers()[1].value > 1 -->

如果我打印出value,我将得到我期望的值。

【问题讨论】:

  • 应该是

标签: knockout.js


【解决方案1】:

应该是&lt;!-- ko if: numbers()[1].value() &gt; 1 --&gt; 因为numbers()[1].value 是一个可观察对象(每个可观察对象都是一个函数)。

在上述情况下,当考虑if: numbers()[1].value &gt; 1 时,您将函数与 1 进行比较(始终为假)。

【讨论】:

    【解决方案2】:

    你应该在“value”之后使用括号,因为“value”是一个可观察的并且你想使用它的内容:

    <!-- ko if: numbers()[1].value() > 1 -->
    

    【讨论】:

      【解决方案3】:

      这是一种方法

      <h4>Numbers</h4>
      <button data-bind="click: add">Add</button>
       <input id="myid" data-bind="value: numbers()[1].value"></input>
       <!-- ko foreach: numbers -->    
      <!-- ko if: $index() == 1-->
      <div data-bind="text: value">
      </div>
      <!-- /ko -->
      <!--/ko-->
      <span data-bind="text: sum"></span>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-22
        • 1970-01-01
        • 2012-01-21
        • 1970-01-01
        • 2022-11-17
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        相关资源
        最近更新 更多