我编写了一个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');
});
}
}
}
};
}]);
答案 0 :(得分:0)
答案是在控制器中实现一个init函数,它将在加载树之前填充完整的数据源(即通过$ http)。