在控制器上注入 ui-路由器解析结果
Inject ui-router resolve result on controller
我试图在控制器中注入这个由服务解析的 fieldsList 变量,但出现错误:
projectApp = angular.module('projectApp', ['ui.router']);
projectApp.config(function($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider.state('initial', {
url: '/',
template: 'Hi !'
})
.state('fields', {
url: '/customers/fields',
resolve: {
fieldsList: function (fieldService) {
return fieldService.getFields();
}
},
views: {
'': {
controller: 'fieldController',
templateUrl: '/static/app/customers/pages/fields.html'
},
'list@fields': {
controller: 'fieldListController',
templateUrl: '/static/app/customers/pages/fields.list.html'
}
}
})
//$locationProvider.html5Mode(true);
});
//控制器
projectApp.controller('fieldListController', ['$scope, $http', 'fieldsList', function($scope, $http, fieldsList) {
this.fieldsList = fieldsList;
console.log(this.fieldsList);
}]);
// 错误:
angular.min.js:124 Error: [$injector:unpr] http://errors.angularjs.org/1.6.6/$injector/unpr?p0=%24scope%2C%20%24httpProvider%20%3C-%20%24scope%2C%20%24http%20%3C-%20fieldListController
at angular.min.js:7
at angular.min.js:46
at Object.d [as get] (angular.min.js:43)
at angular.min.js:46
at d (angular.min.js:43)
at e (angular.min.js:44)
at Object.instantiate (angular.min.js:44)
at angular.min.js:95
at Object.<anonymous> (angular-ui-router.min.js:11)
at angular.min.js:17 "<div class="row mt-4 ml-1 mr-1 ng-scope" ui-view="list">"
任何人都可以看看这个并请说出我做错了什么吗?
PS:我可以记录webservice的数据。所以看起来至少服务有效。
它的发生仅仅是因为你的控制器的注入数组有 '$scope, $http'
作为一个字符串。
像这样拆分两个依赖项:
['$scope', '$http', 'fieldsList', function($scope, $http, fieldsList) {
这应该可以解决错误。
我试图在控制器中注入这个由服务解析的 fieldsList 变量,但出现错误:
projectApp = angular.module('projectApp', ['ui.router']);
projectApp.config(function($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider.state('initial', {
url: '/',
template: 'Hi !'
})
.state('fields', {
url: '/customers/fields',
resolve: {
fieldsList: function (fieldService) {
return fieldService.getFields();
}
},
views: {
'': {
controller: 'fieldController',
templateUrl: '/static/app/customers/pages/fields.html'
},
'list@fields': {
controller: 'fieldListController',
templateUrl: '/static/app/customers/pages/fields.list.html'
}
}
})
//$locationProvider.html5Mode(true);
});
//控制器
projectApp.controller('fieldListController', ['$scope, $http', 'fieldsList', function($scope, $http, fieldsList) {
this.fieldsList = fieldsList;
console.log(this.fieldsList);
}]);
// 错误:
angular.min.js:124 Error: [$injector:unpr] http://errors.angularjs.org/1.6.6/$injector/unpr?p0=%24scope%2C%20%24httpProvider%20%3C-%20%24scope%2C%20%24http%20%3C-%20fieldListController
at angular.min.js:7
at angular.min.js:46
at Object.d [as get] (angular.min.js:43)
at angular.min.js:46
at d (angular.min.js:43)
at e (angular.min.js:44)
at Object.instantiate (angular.min.js:44)
at angular.min.js:95
at Object.<anonymous> (angular-ui-router.min.js:11)
at angular.min.js:17 "<div class="row mt-4 ml-1 mr-1 ng-scope" ui-view="list">"
任何人都可以看看这个并请说出我做错了什么吗? PS:我可以记录webservice的数据。所以看起来至少服务有效。
它的发生仅仅是因为你的控制器的注入数组有 '$scope, $http'
作为一个字符串。
像这样拆分两个依赖项:
['$scope', '$http', 'fieldsList', function($scope, $http, fieldsList) {
这应该可以解决错误。