在$stateProvider
我想要的状态下:
- 加载服务 JS 文件
- 解析服务函数(API 调用)
- 将结果数据传递给控制器
控制器/my-controller.js
angular.module('app').
controller('MyController', ['$scope', function($scope, serviceData){
console.log(serviceData)
}]);
配置.js
...
.state('main', {
url: "/",
templateUrl: 'templates/my-template.html',
controller: 'MyController',
resolve: {
dependencies: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load([
'controllers/my-controller.js'
])
}],
serviceData: ['$ocLazyLoad', '$injector', function($ocLazyLoad, $injector) {
return $ocLazyLoad.load('services/my-service.js')
.then(function(){
var $myService = $injector.get('MyService');
return $myService.GetData();
})
}]
}
})
我希望控制器console.log
从 MyService 执行的 API 调用返回的数据(为简洁起见,不包括在内,但该部分有效)。相反,我得到undefined
.
有任何想法吗?谢谢!