如果满足某些标准,是否有办法在淘汰赛中应用一个绑定,如果不满足这些标准,则不应用此绑定?
<div data-bind="custombinding: $data.values"></div>
Run Code Online (Sandbox Code Playgroud)
如果$data.canEdit为真,我需要应用此绑定,否则我不需要应用此绑定。
确切的例子更复杂。
我认为您通常不应该使不同的绑定相互依赖。相反,创建对逻辑视图模型属性的依赖(这也允许您轻松地对涉及的逻辑进行单元测试)。你已经提到你有这样的财产:canEdit,我认为是一个布尔值。
如果你这样做,你可以创建像这样的自定义绑定:
<div data-bind="custombinding: { onlyIf: canEdit, vals: values }"></div>
Run Code Online (Sandbox Code Playgroud)
此外,我还有第二个@JeremyBarnes 的建议(使用if绑定),例如:
<!-- ko if: canEdit -->
<div data-bind="custombinding: values"></div>
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)
此外,如果必须,您可以在您的视图中包含这样的内容:
<div data-bind="custombinding: !!canEdit() ? values : []"></div>
Run Code Online (Sandbox Code Playgroud)
作为旁注,我建议将该三元运算符的逻辑封装在一个可计算的可观察对象中。
但是,直接转到所问的问题,如果您查看自定义绑定文档,您会发现您可能会做您想做的事,因为绑定处理程序可以访问:
allBindings对于该特定元素;也bindingContext.$data访问视图模型(例如canEdit通过它查找)不可能给出更准确的答案或指导,因为你的问题细节很少。
| 归档时间: |
|
| 查看次数: |
3778 次 |
| 最近记录: |