【问题标题】:Use angular binding with kendo grid templates将角度绑定与剑道网格模板一起使用
【发布时间】:2014-09-11 11:28:23
【问题描述】:

我使用带角度的剑道 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"
    };
}

【问题讨论】:

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


    【解决方案1】:

    你可以试试 ng-bind:

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

    【讨论】:

      【解决方案2】:
      var rowDataObservable =  new kendo.data.ObservableArray(this.rowData);
      

      ... 数据:rowDataObservable, ... //并且你需要使用rowDataObservable,这将工作

      rowDataObservable[0].age = 17;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        • 1970-01-01
        • 2015-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多