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

ale*_*lex 0 html knockout.js

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

我有两个单选按钮,如果选中其中一个,它将可观察值设置为"True""False"。否则,observable的值为null。我希望有一个元素可观察地显示是否为null。以下内容似乎无效:

<div data-bind="visible: specificObservable === null"> Example </div>
<!-- shows the element when null, but not false, nor 'False' -->
Run Code Online (Sandbox Code Playgroud)

Mat*_*and 5

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

<div data-bind="visible: specificObservable() === null"> Example </div>
Run Code Online (Sandbox Code Playgroud)

您需要调用可观察对象以获取其包含的实际值。specificObservable是一个函数,因此不是null,即使它包含的值是null

这可能会使您绊倒,因为如果它们自己使用,则挖空将自动打开可观察对象的包装。因此,如果您这样做:

<div data-bind="visible: specificObservable"> Example </div>
Run Code Online (Sandbox Code Playgroud)

它会要求specificObservable您,并且如果specificObservable()属实则可见。但是,一旦在较长的语句中开始使用它,就需要自己显式解包。