我有一个带有两个 $scope 属性的 Angular Controller :
$scope.details = ortabilityService.detail();
$scope.treeViewOptions = {
dataSource: new kendo.data.HierarchicalDataSource({
data: $scope.details
};
正如我们所看到的, TreeView 选项取决于在将其用作数据源之前要解决的详细信息。现在的问题是,它是一个异步调用,并且始终不能保证它在 treeviewOptions 内部使用之前得到解决。因此,它是一个非常不可靠的负载,有时会加载,有时不会加载。如何确保 $scope.details 在在 treeViewOptions 中使用之前具有值(value)?
最佳答案
如果detail()
返回一个promise,你可以这样做:
ortabilityService.detail().then(function(result) {
$scope.details = result;
$scope.treeViewOptions = {
dataSource: new kendo.data.HierarchicalDataSource({
data: $scope.details
})
};
});
编辑
正如评论所指出的,ortabilityService.detail().$promise.then
在这种情况下有效。
关于javascript - 如何确保 $scope.property 在使用之前具有值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40686520/