【发布时间】: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 },
-
可以尝试将
<td><pre data-bind="text: ko.toJSON($data, null, 2)"></pre></td>这样的单元格连续放置。这将吐出$data的样子。您可以验证makeFalse和makeTrue是否准确。
标签: html data-binding knockout.js