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

Show element if observable value is null

是否可以使用 Knockout 的 visible:if: 数据绑定来检查 observable 的值是否(明确地)为 null?

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

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

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

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

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

这可能会让你在 knockout 中被绊倒,因为 knockout 会自动解包 observables 如果它们被自己使用。所以如果你这样做了:

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

它会为你调用 specificObservable 并且如果 specificObservable() 为真则可见。但是一旦你开始在一个较长的语句中使用它,你就需要自己显式地解包它。

不要忘记调用函数 specificObservable()

后的结束双引号 "