如果语句绑定短路在淘汰.js

if statement binding short circuiting in Knockout.js

本文关键字:淘汰 js 短路 语句 绑定 如果      更新时间:2023-09-26

如果值为 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>

淘汰赛中有合并或其他东西吗?

您可以使用虚拟 if 绑定

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

或者改用可见绑定(但它不是 null 安全的)

<span data-bind="visible: Allergen(), text: Allergen() ? Allergen().Name : '' "></span>

JSFiddle DEMO