javascript - 如何在 Knockout 中有选择地绑定(bind)属性

标签 javascript binding attributes knockout-2.0

我希望根据模型\对象状态设置不同的数据主题属性。 在这里,我只是为数据主题属性 (jQuery Mobile) 设置“b”或“d”。 我可以使用它:

<!-- ko if: $data.id() == $parent.selectedMatchId() -->
    <li data-bind="text: $data.date" data-theme="b"></li>
<!-- /ko -->
<!-- ko ifnot: $data.id() == $parent.selectedMatchId() -->
   <li data-bind="text: $data.date" data-theme="d"></li>
<!-- /ko -->

有点丑。我想(希望)我能够在属性绑定(bind)器中使用表达式,但 Knockout 绑定(bind)引擎不喜欢我提供的内容。

<li data-bind="text: $data.date,
      attr: {'data-theme' : $data.id() == $parent.selectedMatchId() : 'd' ? 'b'}"></li>

有没有比我使用的“ko if”和“ko ifnot”更简洁的方法?

最佳答案

您可以使用模板绑定(bind)。通过此绑定(bind),您可以动态选择要使用的模板。

文档在这里:http://knockoutjs.com/documentation/template-binding.html#note_4_dynamically_choosing_which_template_is_used

关于javascript - 如何在 Knockout 中有选择地绑定(bind)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9594980/

相关文章:

显示新按钮组的 Javascript 开关

javascript - 在 D3.js 中使用 vanilla JS 选择器

WPF错误: Cannot find governing FrameworkElement for target element

class - 是否可以在 Raku 中访问类之外的静态方法和属性?

javascript - Angular - 下载并显示 PDF

c# - RxUI ObservableAsPropertyHelper 不适用于 XAML 绑定(bind)

java - 使用 JSF 时等效的 Spring 自定义 Collection 属性编辑器

C# - 自定义属性

Python - 用 super 重新实现 __setattr__

javascript - 测试数组中是否有任何项返回 true?