knockout.js - 分组绑定(bind)以避免代码重复

标签 knockout.js

是否可以对绑定(bind)进行分组?

例如enablecss 绑定(bind)都引用导致重复的相同条件。

<div data-bind="enable: errors().length == 0, css: { green: errors().length == 0 }">

例如多个元素上的绑定(bind)引用相同的条件。

<div data-bind="css: { green: errors().length == 0 }">
<div data-bind="css: { blue: errors().length == 0 }">
<div data-bind="css: { red: errors().length == 0 }">

最佳答案

您可以使用 ko.compulated ( documentation ) 来保存条件逻辑:

this.noErrors = ko.computed(function(){
    return this.errors().length == 0;
}, this);

然后您可以将绑定(bind)简化为:

<div data-bind="enable: noErrors, css: { green: noErrors }">

<div data-bind="css: { green: noErrors }">
<div data-bind="css: { blue: noErrors }">
<div data-bind="css: { red: noErrors }">

或者您可以创建自己的 custom bindings或者您可以使用新的预处理功能 extend Knockout's binding syntax封装您的自定义“分组”逻辑。

关于knockout.js - 分组绑定(bind)以避免代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441865/

相关文章:

c# - 在 .NET MVC2 中使用 Knockoutjs 和服务器端验证

javascript - knockout 在 Pyramid 中表现不正确

knockout.js - 使用 foreach 时 KnockoutJS observableArray 绑定(bind)未收到更新通知

ruby-on-rails - ajax 调用在 rspec 测试中失败

javascript - 基于函数的 View 模型未转换为 JSON

javascript - knockoutjs 删除点击绑定(bind)

javascript - 如何在 Knockout 中从另一个 View 模型更新 View 模型数据

knockout.js - 扩展 knockout 可观察数组

javascript - Knockout.js 中嵌套组件之间的通信

javascript - knockout 组件更新可观察对象未被父 View 模型订阅?