Knockout.js对多个booleans的 "if Binding"。

问题描述 投票:35回答:3

是否可以使用Knockout的? 如果绑定 在多个布尔值上?

<div data-bind="if: (property.aTrueValue && property.anotherTrueValue)">...

我试过很多不同的语法,但似乎找不到合适的语法。

knockout.js knockout-2.0
3个回答
53
投票

当Knockout处理你的绑定时,它首先会评估你的表达式。

如果表达式的结果是一个观测值,它就会方便地评估这个观测值,以获得if:工作的最终值。

所以下面两个工作方式是一样的

<div data-bind="if: foo"></div>
<div data-bind="if: foo()"></div>

一旦你离开了以观测值结尾的简单表达式的世界,你可能也想抛开糖,总是自己评估观测值(如果没有别的原因,为了理智)。

试试下面的例子

<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...

6
投票

你可以--if 绑定只是取一个任意的表达式。当做更多的事情而不仅仅是像这样引用一个观测值时,你将需要实际调用观测值,就像这样。

<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...

下面是一个工作示例 jsfiddle.


0
投票

目前的解决方案更像是这样。

<div data-bind="if: (prop() === true && prop2() === true)">...
© www.soinside.com 2019 - 2024. All rights reserved.