如何使用角度Kendo UI刷新网格数据源

Dav*_*hel 19 kendo-ui angularjs kendo-grid

我使用Angular Kendo UI项目将Telerik Kendo网格与Angular相结合.

我有以下标记:

<div kendo-grid="" k-options="thingsOptions" style="height: 600px;" />
Run Code Online (Sandbox Code Playgroud)

和我的控制器中的以下代码:

    $scope.thingsOptions = {
        dataSource: {
            type: "json",
            transport: {
                read: "/OM/om/getAssets",
                dataType: "json"
            },
            schema: {
                model: {
                    id: "ProductID",
...
Run Code Online (Sandbox Code Playgroud)

这一切都正常,但我想从我的控制器强制数据源刷新我的网格.就像是

 $scope.getTasks = function() {
    $scope.thingsOptions.dataSource.read();
};
Run Code Online (Sandbox Code Playgroud)

这是可以从控制器做的吗?我总能做点什么

$("#taskGrid").data("kendoGrid").dataSource.read();
Run Code Online (Sandbox Code Playgroud)

在我的控制器中.但是从我的控制器中选择一个HTML元素似乎有点不对劲.

mic*_*ing 18

只需将范围变量传递给指令,然后在控制器内部,您可以使用该变量调用所需的任何窗口小部件方法.

<div kendo-grid="grid" ...></div>

<script>
  ...

  $scope.getTasks = function() {
    // scope.grid is the widget reference
    $scope.grid.refresh();
  }

  ...
</script>
Run Code Online (Sandbox Code Playgroud)

参考:http://blogs.telerik.com/kendoui/posts/14-02-26/a-few-angular-kendo-ui-best-practices

  • 我不得不使用'$ scope.grid.dataSource.read();' (8认同)

小智 11

您的数据源必须是kendo对象

$scope.thingsOptions = {
        dataSource: new kendo.data.DataSource({
                    type: "json",
                    transport: {
                        read: "/OM/om/getAssets",
                        dataType: "json"
                    },
                    schema: {
                        model: {
                            id: "ProductID",
Run Code Online (Sandbox Code Playgroud)

然后就可以打电话了

$scope.thingsOptions.dataSource.read();
Run Code Online (Sandbox Code Playgroud)