knockout js将类绑定到函数的结果

Dav*_*ave 2 knockout.js

我使用knockout js根据表达式的结果设置元素的类,我想知道的是,是否可以将类设置为视图模型中函数返回的值.

这就是我现在所做的工作:

<div data-bind="css: { highlightup : OneDayChange > 0 &&  SevenDayChange > 0}">
</div
Run Code Online (Sandbox Code Playgroud)

我想有类似的东西:

<div data-bind="css: { bothValuesIncreasing(); }">
</div
Run Code Online (Sandbox Code Playgroud)

编辑 澄清我希望类由函数返回的值设置,但它可能不是布尔值,它可能是函数返回的任何字符串

Alf*_*feG 7

您需要使用计算属性.

var vm = function(){
  var self = this;
  self.OneDayChange = ko.observable();
  self.SevenDayChange = ko.observable();
  self.isBothValue = ko.computed(function(){
    return self.OneDayChange() > 0 && self.SevenDayChange() > 0;
  });
}

<div data-bind="css: { highlightup: isBothValue() }">
</div
Run Code Online (Sandbox Code Playgroud)

不要害怕将这些属性用于特定于视图的操作.那是什么视图模型创建的.

响应更新: 自定义绑定将是解决此问题的最佳选择.

实际上我在KnockoutJs google小组上找到了答案

绑定 - https://github.com/SteveSanderson/knockout/wiki/Bindings---class

演示 - http://jsfiddle.net/mbest/NBmjh/