gpt4 book ai didi

javascript - knockout JS : checking for the existence of an observable in an IF binding

转载 作者:行者123 更新时间:2023-12-03 03:34:23 25 4
gpt4 key购买 nike

我正在为几个略有不同的对象呈现类似的 HTML block 。它们 90% 是相同的,但每一种都有一些特定的怪癖,需要额外的可观察值。我想在模板 block 中渲染这些大部分相似的项目,但我遇到了 undefined object 的问题。

基本上,我想在模板中渲染可观察对象之前检查它是否存在。

我正在尝试做这样的事情:

<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”绑定(bind)的理解,如果对象返回任何类似 false 的值(例如 null 或 undefined),它应该起作用,这意味着 if 绑定(bind)应该优雅地失败,但它绝对不是.

有什么办法可以实现这个功能吗?

最佳答案

您可以使用以下方法:

<!-- ko foreach: Items -->
<strong data-bind="text: Foo"></strong>
<br />
<!-- ko if: $data.hasOwnProperty("Bar") -->
<p data-bind="text: Bar"></p>
<!-- /ko -->
<!-- /ko -->​

我发布了 working demo

关于javascript - knockout JS : checking for the existence of an observable in an IF binding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com