AngularJS中的KendoUI TreeView:如何在单个服务器请求中加载完整的HierarchicalDataSource?

时间:2014-11-13 19:24:03

标签: angularjs kendo-ui kendo-treeview

我编写了一个KendoUI / AngularJS TreeView,它使GET服务器请求检索JSON数据。问题是树中只显示第一个节点,即使JSON响应包含完整的树。

我读到here,因为树使用了HierarchicalDataSource,所以有一种解决方法来获取完整的树。但是,解决方法不在AngularJS中,我无法弄清楚如何使用k-options属性加载树。如何在单个请求中加载和显示完整的树?

这是HTML:

     <div ng-controller="ctrl">             
        <div id="treediv" kendo-tree-view="tree" k-options="treeOptions"></div>
     </div>

这是JavaScript:

app.controller('ctrl', ['$scope','$http', function($scope,$http) {

    $scope.treeOptions = {
            dataSource: {
                transport: {
                    read: function (e) {
                         $http({
                              method: 'GET',
                              url: '/loadtree',
                              headers: {
                                   'Content-Type': 'application/json'
                              }
                            }).
                            success(function(data, status, headers, config) {
                                  e.success(data.tree);
                            }).
                            error(function(data, status, headers, config) {
                                  alert('System error');
                            });
                          }
                       }
                    }
                };
          }]);

1 个答案:

答案 0 :(得分:0)

答案是在控制器中实现一个init函数,它将在加载树之前填充完整的数据源(即通过$ http)。