使用角度绑定与kendo网格模板

时间:2014-09-11 11:28:23

标签: angularjs data-binding kendo-ui kendo-grid

我使用带角度的kendo ui网格。我希望网格能够随着数组(任何属性)的每次更改而更新。意思是,如果我的数据是:

this.rowData = [{ id: "1",  name: "A", age: "16" }, { id: "2", name: "B", age: "42" }];

并且年龄从16更改为17我希望网格自动更新。

我知道我可以使用ObservableArray,在更新observable时,网格会更新,但我不希望整个应用程序知道observable。我希望能够更新原始rowData并影响网格。有关我如何做的任何建议吗?

我认为使用角度绑定向行或特定列添加模板会有所帮助,但它没有,这是一个例子:

function Controller(GridConstants) {
    this.rowData = [{ id: "1",  name: "A", age: "16" }, { id: "2", name: "B", age: "42" }];
    this.gridDataSource = new kendo.data.DataSource({
        data: new kendo.data.ObservableArray(this.rowData),
        schema: {
            model: { id: "id" }
        }
    });

    this.gridOptions = {
        dataSource: this.gridDataSource,
        selectable: "row",
        columns: [
                    {
                        field: "name",
                        title: "Name"
                    },
                    {
                        field: "age",
                        title: "Age",
                        template: "<label>{{dataItem.age}}</label>"
                    }
        ],
        selectable: "single"
    };
}

2 个答案:

答案 0 :(得分:1)

您可以尝试使用ng-bind:

template: "<label ng-bind='dataItem.age'></label>"

答案 1 :(得分:0)

var rowDataObservable =  new kendo.data.ObservableArray(this.rowData);

... data:rowDataObservable, ... //你需要使用rowDataObservable,这将起作用

rowDataObservable[0].age = 17;