Knockout.js if数据绑定中的剔除字符串比较

Knockout.js if数据绑定中的剔除字符串比较,knockout.js,Knockout.js,category变量定义为ko.observable(),子值应根据category值进行更改。 下面的if语句总是返回false <!-- ko if: $parent.category == "Electronics"--> <div>abc</div> <!--/ko--> abc 下面的if语句也总是返回false: <span data-bind="if: $parent.category == 'Electronics

category
变量定义为
ko.observable()
,子值应根据
category
值进行更改。
下面的if语句总是返回false

<!-- ko if: $parent.category == "Electronics"-->
   <div>abc</div>
<!--/ko-->

abc
下面的if语句也总是返回false:

<span data-bind="if: $parent.category == 'Electronics'">
   <div>abc</div>
</span>

abc

如何在数据绑定中与硬代码值进行比较?

KO Observable是函数,要在表达式中获取它们的值,需要在不带任何参数的情况下调用它们,例如:
$parent.category()

因此,您需要将代码更改为:

<!-- ko if: $parent.category() == "Electronics"-->
   <div>abc</div>
<!--/ko-->

abc

在原始代码中,您比较的是可观察函数(
$parent.category
),而不是它的值与
“Electronics”
,这就是为什么它总是错误的原因。

如果要使用该语法,请使用类似的方法。