【问题标题】:knockout visible property data binding淘汰可见属性数据绑定
【发布时间】:2013-07-10 18:11:32
【问题描述】:

不确定这是怎么回事,但使用 foreach 时 visible 属性似乎不起作用。

这有效(仅显示测试 2):

<tbody data-bind="foreach: people">
    <tr>
        <td data-bind="text: $data.firstName"></td>
        <td data-bind="text: $data.lastName"></td>
         <td>
        <div data-bind="visible: false">
           Testing 1
        </div>
         <div data-bind="visible: true">
           Testing 2
        </div>
         </td>
    </tr>

这不起作用(同时显示): //布尔值 = makeFalse 为假,makeTrue 为真

<tbody data-bind="foreach: people">
    <tr>
        <td data-bind="text: $data.firstName"></td>
        <td data-bind="text: $data.lastName"></td>
         <td>
        <div data-bind="visible: $data.makeFalse">
           Testing 1
        </div>
         <div data-bind="visible: $data.makeTrue">
           Testing 2
        </div>
         </td>
    </tr>

关于如何让它工作的任何想法?

【问题讨论】:

  • 您能否在 jsFiddle 中重现或提供您的 js 代码示例。如果 makeFalse 和 makeTrue 是存在于 people 数组中的项目上的属性或可观察对象,那么这应该可以工作。
  • @RPNiemeyer 我无法在 jsFiddle 中重现该问题。它在那里完美地工作。至于 makeTrue 和 makeFalse 它们在 arr 中的名称与名字和姓氏相同,但为 bool E.g. { firstName: 'someFirstName', lastName: 'someSurname', makeFalse: false, makeTrue: true },
  • 可以尝试将&lt;td&gt;&lt;pre data-bind="text: ko.toJSON($data, null, 2)"&gt;&lt;/pre&gt;&lt;/td&gt; 这样的单元格连续放置。这将吐出$data 的样子。您可以验证makeFalsemakeTrue 是否准确。

标签: html data-binding knockout.js


【解决方案1】:

我记得我被这样的事情困住了。尝试使用 ()。

<div data-bind="visible: $data.makeFalse()"></div>
<div data-bind="visible: $data.makeTrue()"></div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2012-11-14
    相关资源
    最近更新 更多