我在数组上有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';
});
};
我是初学者。请帮忙。提前谢谢。
答案 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