【发布时间】:2014-04-24 00:47:45
【问题描述】:
我在 <tbody> 上有一个自定义绑定处理程序,我只想在用户拥有来自 Viewmodel 的适当权限时应用它。此数据绑定允许用户拖放表格中的元素以重新排序列表。
如果满足某些条件,是否可以有条件地对我的自定义绑定处理程序进行数据绑定?
基本上我想要:
<tbody data-bind="if (hasPermission){custom-binding: list}"></tbody>
这种行为可以通过淘汰赛来实现吗?我认为我可以采用其他策略,例如有一个允许用户对表格进行排序的按钮(仅在他具有正确权限时才显示),但我想检查是否有其他方法。
谢谢。
编辑
我对自己提出的解决方案感觉不太好,但它让我得到了想要的结果:
<!--ko if: hasPermission-->
<tbody data-bind="foreach: list, sortableList: list">
@Html.Partial("_FilesTabTableBody")
</tbody>
<!-- /ko -->
<!--ko if: !hasPermission()-->
<tbody data-bind="foreach: list">
@Html.Partial("_FilesTabTableBody")
</tbody>
<!-- /ko -->
基本上我只是在两个地方复制 HTML。它并不漂亮,但确实可以。感谢大家的意见。
【问题讨论】:
-
我只是想知道,在您进行编辑后,如果用户有权限,您是否知道服务器端?因为那样你就可以渲染适当的 html 服务器端。
-
这是一个很好的直觉。当用户与列表交互时,hasPermission 实际上会发生变化,所以我不能使用模板化的 HTML 来完成这一切。好主意!