web-dev-qa-db-ja.com

angular Kendo UIを使用してグリッドデータソースを更新するにはどうすればよいですか

Telerik KendoグリッドとAngularを使用して、Angular Kendo UIプロジェクトを使用しています。

次のマークアップがあります。

<div kendo-grid="" k-options="thingsOptions" style="height: 600px;" />

私のコントローラーで次のコード:

    $scope.thingsOptions = {
        dataSource: {
            type: "json",
            transport: {
                read: "/OM/om/getAssets",
                dataType: "json"
            },
            schema: {
                model: {
                    id: "ProductID",
...

これはすべて正常に動作しますが、コントローラーからグリッドのデータソースを強制的に更新したいと思います。何かのようなもの

 $scope.getTasks = function() {
    $scope.thingsOptions.dataSource.read();
};

これはコントローラーから実行できますか?いつでもできる

$("#taskGrid").data("kendoGrid").dataSource.read();

私のコントローラーで。しかし、コントローラーからHTML要素を選択する必要があるのは少し間違っているようです。

19
David Kethel

スコープ変数をディレクティブに渡すだけで、コントローラー内で変数を使用して必要なウィジェットメソッドを呼び出すことができます。

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

<script>
  ...

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

  ...
</script>

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

18
micjamking

データソースは剣道オブジェクトでなければなりません

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

その後、呼び出すことが可能です

$scope.thingsOptions.dataSource.read();
11
Yakub