Javascript 访问ui路由器解析控制器中的对象
我有一个函数从ui router resolve中的API返回一些数据,并希望访问控制器中的该对象 UI路由器:Javascript 访问ui路由器解析控制器中的对象,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我有一个函数从ui router resolve中的API返回一些数据,并希望访问控制器中的该对象 UI路由器: .state('base.home', { url:'/', templateUrl: 'views/home.html', controller: 'homeCtrl', resolve:{ testResolve: function($http) { var api = 'http://myapi.in
.state('base.home', {
url:'/',
templateUrl: 'views/home.html',
controller: 'homeCtrl',
resolve:{
testResolve: function($http) {
var api = 'http://myapi.internet/posts';
$http.get(api).then(function(res){
console.log(res.data); // data is there!
return(res.data);
})
}
}
})
.controller('homeCtrl',function($scope, $http, $state, testResolve){
console.log(testResolve); // undefined :(
})
控制器:
.state('base.home', {
url:'/',
templateUrl: 'views/home.html',
controller: 'homeCtrl',
resolve:{
testResolve: function($http) {
var api = 'http://myapi.internet/posts';
$http.get(api).then(function(res){
console.log(res.data); // data is there!
return(res.data);
})
}
}
})
.controller('homeCtrl',function($scope, $http, $state, testResolve){
console.log(testResolve); // undefined :(
})
我搜索了一些类似的主题,找到了上面的解决方案,但是我的对象仍然在我的控制器中出现
未定义的。您需要返回$http.get(api).
您的$http
正在将数据返回到解析,但解析没有返回任何内容。噢,呸!但是如何从$http范围内返回呢?我想我必须回报一个承诺,对吧?$http
是一个承诺。只需在通话开始时添加return
。啊!是的,解决了!非常感谢。