如果绑定与一行中的数据绑定,则组合Knockout

时间:2017-10-24 09:50:02

标签: javascript knockout.js devextreme

是否有可能将Knockout的绑定与同一行中的另一个绑定结合起来?如果条件为真,我想显示并执行仅对div的绑定。如果用户有权查看图表,则只应显示图表。

我的图表定义非常简单:

<div style="height:150px" data-bind="dxChart: chartSettings"></div>

我可以在dxChart绑定之前添加if绑定吗?或者,如果在此上下文中绑定使用注释是不可避免的,就像这样?

<!-- ko if: hasRights -->
<div style="height:150px" data-bind="dxChart: chartSettings"></div>
<!-- /ko -->

1 个答案:

答案 0 :(得分:0)

<div style="height:150px" data-bind="dxChart: chartSettings, if: hasRights">
    ... Elements ...
</div>

这不会影响div本身,只会影响div中包含的元素。

您可以使用visible绑定 - 这将隐藏整个div(包括子节点),但是您可能知道,它不会阻止div添加到DOM:

<div style="height:150px" data-bind="dxChart: chartSettings, visible: hasRights">
    ... Elements ...
</div>

所以,是的,在基于注释的绑定(containerless control flow syntax)中包装div是其中一个解决方案。另一个解决方案是包装一个具有if绑定的div。类似的东西:

<div data-bind="if: hasRights">
    <div style="height:150px" data-bind="dxChart: chartSettings">
        ... Elements ...
    </div>
</div>