我想隐藏一个跨度,如果该值为null或只是显示一个空字符串。 if语句不是短路,所以我将整个语句包装在div中。

这是我现在正在工作的内容:

<div data-bind="if: Allergen()"><span data-bind="text: Allergen().Name"></span></div>

这是我想做的:
<span data-bind="if: Allergen(), text: Allergen().Name"></span>

knockout 中是否有合并或其他内容?

最佳答案

您可以使用虚拟if bindings

<!-- ko if: Allergen() -->
<span data-bind="text: Allergen().Name"></span>
<!-- /ko -->

或改用visible-binding(但它不是null安全的)
<span data-bind="visible: Allergen(), text: Allergen() ? Allergen().Name : '' "></span>

JSFiddle DEMO

09-18 20:23