Data binding 如果需要,请单击并显示绑定

Data binding 如果需要,请单击并显示绑定,data-binding,knockout.js,conditional,visibility,Data Binding,Knockout.js,Conditional,Visibility,非常简单的问题 假设我的视图中有此HTML(): 假设isoowner(ref)的计算结果为true,我看到的锚没有文本。不太好 预期结果与之前相同(第一个示例) 现在让我们假设我有这样的东西: <a id="btnXYZ" class="" data-bind="click: editAction, if: isOwner(ref)">Button</a> <div class=""> <a id="btnX" class="" data-b

非常简单的问题

假设我的视图中有此HTML():

假设
isoowner(ref)
的计算结果为true,我看到的锚没有文本。不太好

预期结果与之前相同(第一个示例)

现在让我们假设我有这样的东西:

<a id="btnXYZ" class="" data-bind="click: editAction, if: isOwner(ref)">Button</a>
<div class="">
    <a id="btnX" class="" data-bind="click: editAction, if: isOwner(ref)">Button</a>
    <a id="btnY" class="" data-bind="click: editAction, if: isOwner(ref)">Button</a>
    <a id="btnZ" class="" data-bind="click: editAction, if: isOwner(ref)">Button</a>
</div>

按钮
按钮
按钮
和前面一样,如果isOwner(ref)的计算结果为true,请参见空锚定标记

问题:
如何绑定if:isOwner()以管理按钮可见性

i、 e.
如果
isOwner(ref)
评估为
true
我应该看到一个正确的链接/按钮
如果
isOwner(ref)
的计算结果为
false
我应该看不到任何链接/按钮

您想要使用绑定。这将显示和隐藏整个元素,而
if
绑定只控制元素的内容

给你

但是在这种情况下,我会选择@Vladimirs answer,因为您可以将虚拟元素包装在所有3个按钮上,而不是单独绑定它们。

您可以使用以下方法实现:

<!-- ko if: isOwner(ref) -->
    <a id="btnXYZ" class="" data-bind="click: editAction">Button</a>
<!-- /ko -->

按钮
此外,如果需要,您可以显示完全不同的内容,例如:

<!-- ko ifnot: isOwner(ref) -->
    whatever you want
<!-- /ko -->

随便你

事实上,
可见性
将不允许我从视图中执行isOwner()。不知道我怎么会没有想到这一点。我太累了(想不起来)。非常感谢。
<!-- ko ifnot: isOwner(ref) -->
    whatever you want
<!-- /ko -->