当两个条件之一为真时,我想将可见特性绑定为真。如下

 <tr data-bind="visible: active || $parent.displayDeactive">....</tr>

当我进行一种或其他绑定时,我的代码可以起作用,但当我放置||时不行。在那里。我还没有找到任何文档,说我可以在这种绑定中放置任何逻辑,但是如果我不能直接执行此操作,因为我正在绑定模板的属性和$的一个对象,这是est的方法。父ViewModel。

有帮助吗?

解决方案

如果您在表达式中使用可观察到的值,则需要将其引用为函数。因此,如果 activedisplayDeactive 是您会做的可观察到:

data-bind="visible: active() || $parent.displayDeactive()"

有几种将其移至视图模型的方法,您可以:

  • 创建一个可以观察到的孩子的计算的(功能需要能够参考父母)
  • 在父母上创建一个函数,该函数接收孩子并返回您的值(绑定是在计算的可观察到的,因此当可观察到的访问更改时,它将再次触发)
  • 在孩子接入父的孩子上创建一个函数并返回值(相同的注释与上述相同)

在绑定中的逻辑样本并在此处使用函数在此处使用: http://jsfiddle.net/rniemeyer/f6zgh/

其他提示

由于您正在评估它们,因此将Parens添加在观测值之后。

<input type="checkbox" data-bind="checked:displayDeactive"> Display deactive</input>
<br/><br/>
<table>
    <tbody data-bind="foreach: products">
        <tr data-bind="visible: active() || $parent.displayDeactive()">
            <td><span data-bind="text:name"></span></td>
        </tr>
    </tbody>
</table>

您可以在此处找到完整的代码: http://jsfiddle.net/johnpapa/gsnus/

您可以在模板的项目上使用计算的属性来评估表达式(只是看到@rpniemeyer也对此做出了响应... i +1'd)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top