我试图访问路由器配置文件中stateParams对象的属性,但每当我尝试导入$ stateParams服务时,我都会收到错误。
(function() {
'use strict';
angular
.module('propertyDetails')
.config([
'$stateProvider',
'$stateParams',
routeConfig
]);
function routeConfig($stateProvider, $stateParams) {
console.log($stateParams)
}
})();
导入 $stateProvider
时没有任何问题,但stateParams
我收到此错误:
Error: [$injector:modulerr] Failed to instantiate module propertyDetails due to:
Error: [$injector:unpr] Unknown provider: $stateParams
答案 0 :(得分:2)
这是不可能的,因为配置功能在配置阶段when no services are available中运行。以下是文档中的插图:
您的方法有问题。为什么您需要直接访问模块$stateParams
块中的config
?您可以在定义以下状态时将其注入控制器:
(function () {
'use strict';
angular
.module('propertyDetails')
.config([
'$stateProvider',
routeConfig
]);
function routeConfig($stateProvider) {
$stateProvider
.state('property.detail', {
url: "/property/:propertyId",
templateUrl: 'property.detail.html',
controller: function ($stateParams) {
console.log($stateParams);
}
});
}
})();
答案 1 :(得分:1)
您可以直接注入控制器的主要功能
angular
.module('propertyDetails')
.controller('TestController', TestController)
TestController.$inject = ['$scope', '$stateParams'];
function TestController($scope, $stateParams) {
//your code
}