是否可以对绑定进行分组?
e.g。 enable
和css
绑定都指的是导致重复的相同条件。
<div data-bind="enable: errors().length == 0, css: { green: errors().length == 0 }">
和
e.g。对多个元素的绑定指的是相同的条件。
<div data-bind="css: { green: errors().length == 0 }">
<div data-bind="css: { blue: errors().length == 0 }">
<div data-bind="css: { red: errors().length == 0 }">
答案 0 :(得分:3)
您可以使用ko.computed
(documentation)来保存条件逻辑:
this.noErrors = ko.computed(function(){
return this.errors().length == 0;
}, this);
然后您可以将绑定简化为:
<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来封装自定义“分组”逻辑。