如何等待来自资源的实际数据
问题描述:
所以我有一个使用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);
...
现在我知道,在等待数据的角度受让人空值返回一个对象。这反过来导致组件的执行,并且我在组件控制器中结束了空数据。现在怎么给力的角度,以等待来自服务器的数据,执行控制器
前,当我尝试
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
我已经阅读了大部分问题在计算器上以及一些文章,包括
https://www.jvandemo.com/how-to-resolve-angularjs-resources-with-ui-router/
答
的问题是我有错版角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
通过在控制器内部的数据上添加$ watch,我可以在数据到达时做些事情,但是我认为这是错误的,不应该这样做 –