【发布时间】:2012-02-24 07:19:09
【问题描述】:
我正在为几个略有不同的对象渲染一个类似的 HTML 块。它们有 90% 相同,但每一个都有一些特定的怪癖,需要额外的 observables。我想在模板块中呈现这些大部分相似的项目,但我遇到了未定义对象的问题。
基本上,我想在模板中渲染它之前检查它是否存在。
我正在尝试做这样的事情:
<div data-bind="foreach: blocks">
<h2 data-bind="text: normalHeader"><h2>
<p data-bind="text: normalText"></p>
<!-- ko if: specialText --><p data-bind="text: specialText"></p><!-- /ko -->
</div>
因此,如果对于 blocks 的迭代不存在 specialText(不仅没有值,而且根本不存在),则忽略条件。我得到的错误是:
Uncaught Error: Unable to parse bindings.
Message: ReferenceError: specialText is not defined;
根据我对 Knockout 的“if”绑定的理解,如果对象返回任何类型的类似 false 的值(如 null 或 undefined),它应该可以工作,这意味着 if 绑定应该正常失败,但绝对不是.
有什么办法可以做到吗?
【问题讨论】: