是否可以在多个布尔值上使用Knockout的 if binding ?
如
<div data-bind="if: (property.aTrueValue && property.anotherTrueValue)">...
我尝试了很多不同的语法,但似乎找不到合适的语法。 我不确定它是否可能。
答案 0 :(得分:52)
当Knockout处理你的绑定时,它首先评估你的表达。
如果表达式产生了一个observable,它会评估observable以方便获取if:的最终值。
所以以下两个相同的工作
<div data-bind="if: foo"></div>
<div data-bind="if: foo()"></div>
一旦你离开了以可观察的方式结束的简单表达的世界,你可能也想留下糖并且总是自己评估观察者(为了理智而不管其他)。
尝试以下
<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...
答案 1 :(得分:5)
你可以 - if绑定只需要一个任意表达式。当做的不仅仅是引用像这样的observable的值时,你需要像这样实际调用observable:
<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...
这是一个有效的jsfiddle。
答案 2 :(得分:0)
当前解决方案更像这样:
<div data-bind="if: (prop() === true && prop2() === true)">...