我正在考虑使用 KoGrid,我花了一段时间才弄清楚如何使用可观察的属性。我发现关于自定义模板的 wiki 页面很有帮助,我必须使用$parent.entity['editableField']
. 但是,我无法让 css 绑定工作。
请参阅我的plunker或下面从他们的示例修改的副本。我可以打赌姓名和年龄会更改为可观察的,但第一行,第 2 列应该是绿色的(年龄 > 30)。
function stringCellTemplateVM() {
var self = this;
this.selectedItems = ko.observableArray([]);
this.myData = ko.observableArray([{ name: ko.observable("Moroni"), age: ko.observable(50) },
{ name: "Tiancum", age: 43 },
{ name: "Jacob", age: 27 },
{ name: "Nephi", age: 29 },
{ name: "Enos", age: 34 }]);
this.gridOptions = {
data: self.myData,
selectedItems: self.selectedItems,
multiSelect: false,
columnDefs: [{field: 'name', displayName: 'Name'},
{field: 'age', displayName: 'Age', cellTemplate:'<div data-bind="attr: { \'class\': \'kgCellText colt\' + $index()},css: { green: $parent.entity[\'age\'] > 30 }, html: $parent.entity[\'age\']"></div>'}]
};
this.increaseAge = function(){
this.myData()[0].age(this.myData()[0].age()+1);
//alert(this.myData()[0].age());
//this.myData()[0].name(this.myData()[0].name() + this.myData()[0].age());
};
}
var vm = new stringCellTemplateVM();
ko.applyBindings(vm);
- 这是使用可观察属性的正确方法吗?
- 当满足该要求时,如何使 css 绑定工作以将其更改为绿色?