如果可观察值为null,则显示元素

时间:2015-03-04 20:37:59

标签: html knockout.js

是否可以使用Knockout的visible:if:数据绑定来检查可观察的值是否(显式)为空?

我有两个单选按钮,如果选中其中任何一个,它会将可观察的值设置为"True""False"。否则,可观察值为null。如果可观察值为null,我希望有条件地显示一个元素。以下似乎不起作用:

<div data-bind="visible: specificObservable === null"> Example </div>
<!-- shows the element when null, but not false, nor 'False' -->

2 个答案:

答案 0 :(得分:5)

猜测specificObservable是一个可观察的,请尝试:

<div data-bind="visible: specificObservable() === null"> Example </div>

您需要调用observable来获取它包含的实际值。 specificObservable是一个函数,因此不是null,即使它包含的值是null

这可以让你在淘汰赛中绊倒,因为如果他们自己使用,淘汰赛会自动解开观察。所以,如果你这样做了:

<div data-bind="visible: specificObservable"> Example </div>

如果specificObservable真实,它会为您致电specificObservable()并显示。但是一旦你开始在更长的语句中使用它,你需要自己明确地解开它。

答案 1 :(得分:0)

在调用函数"之后忘记结束双引号specificObservable()