所以我有一个使用ui-router的角度应用程序。我决定使用该资源来获取数据。
app.config.js
resolve: {
data: function ($resource) {
var dataObj= $resource('/api/area/162');
return dataObj.get({},function(result){
return result;
});
}
}
我的控制器内部称为组件
...
var $ctrl = this;
console.log("data", $ctrl);
...
现在我知道angular指定空值以在等待数据时返回一个对象。反过来导致组件的执行,我最终在组件控制器中的空数据。现在如何在执行控制器
之前强制角度等待来自服务器的数据当我尝试
时 resolve: {
data: function ( $http) {
return $http.get('/api/area/162').then(function(response) {
return response.data;
});
}
}
一切正常,在获取数据之前未加载视图,我可以在控制器中看到数据。如何使用资源获得相同的结果?
我也尝试过:
app.config.js
resolve: {
data: function (Data, $stateParams, $http, $resource) {
var object = $resource('/api/area/162');
return object.get().$promise.then(function(result){
return result;
});
}
}
这只会返回错误:
stateService.ts:526 TypeError: Cannot read property 'then' of undefined
at data (app.config.js:81)
at resolvable.ts:120
at angular.js:17051
at m.$digest (angular.js:18233)
at angular.js:18462
at e (angular.js:6362)
at angular.js:6642
我已经阅读了StackOverflow上关于类似问题的大部分问题以及一些文章,包括
https://www.jvandemo.com/how-to-resolve-angularjs-resources-with-ui-router/
答案 0 :(得分:0)
问题是我使用了错误版本的angular-resource.js:/
所以,这确实有用......
app.config.js
resolve: {
data: function (Data, $stateParams, $http, $resource) {
var object = $resource('/api/area/162');
return object.get().$promise.then(function(result){
return result;
});
}
}
问题解决了:P