如何在计算的observable中使用当前对象? - Knockout.js

时间:2015-06-16 06:16:44

标签: javascript jquery knockout.js

我在数组上有foreach数据绑定。

我想访问当前对象或放置在计算的observable中(与click数据绑定一样)。

示例:

这是我的观点:

<tbody data-bind='foreach: items'>
  <tr data-bind="attr: {class:$root.changeClass()}">
    <td data-bind='text: name'></td>
  </tr>
</tbody>

而且,这是视图模型:

function model() {
  var self = this;
  self.items = ko.observableArray(itemArray);
  self.changeClass = ko.computed(function(data) {
    //code that depends on data
    return 'someClass';
  });
};

我是初学者。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情

查看:

<table data-bind='foreach: items'>
  <tr data-bind="attr: {class:$root.changeClass($data)}">
    <td data-bind='text: $data'></td>
  </tr>
</table>

Css:

 .classEven{
     color:blue;
    }

 .classOdd{
       color:red;
    }

<强>视图模型:

function model() {
  var self = this;
  self.items = ko.observableArray([1,2,3]);
  self.changeClass =function(data) {
    //code that depends on data
      if(data%2) return 'classEven';
      else return 'classOdd';
  };
};

ko.applyBindings(new model()); // This makes Knockout get to work

工作样本小提琴here