该category变量被定义为ko.observable()和子值应根据被改变category的值.
if if语句总是返回false.
<!-- ko if: $parent.category == "Electronics"-->
<div>abc</div>
<!--/ko-->
Run Code Online (Sandbox Code Playgroud)
下面的if语句也总是返回false:
<span data-bind="if: $parent.category == 'Electronics'">
<div>abc</div>
</span>
Run Code Online (Sandbox Code Playgroud)
如何在数据绑定中与硬代码值进行比较?
nem*_*esv 17
KO observables是函数,并且无需任何参数即可在需要调用它们的表达式中获取它们的值,例如: $parent.category()
所以你需要将代码更改为:
<!-- ko if: $parent.category() == "Electronics"-->
<div>abc</div>
<!--/ko-->
Run Code Online (Sandbox Code Playgroud)
在原始代码中,您正在比较可观察函数($parent.category)而不是它的值,"Electronics"这就是为什么它始终为false.