将服务注入(inject)子状态解析函数时出现未知提供者。但是如果在父状态中定义了一个解析,它就可以工作。下面是一些示例代码:
我定义了一个服务模块
angular.module('services', [])
.factory('myService', function() {
// my service here
})
并初始化应用程序
var app = angular.module('app', ['services', 'ui.router']);
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider,
$urlRouterProvider) {
$stateProvider.state('wizard', {
url: '/wizard',
abstract: true
})
.state('wizard.step1', {
url: '/step1',
templateUrl: ... ,
resolve: {
name: function(myService) {
// do something with mySerice
}
},
controller: function(name) {
// controller codes here
}
})
}]);
我在wizard.step1 解决中收到错误Unknown provider 提示myService。但是如果我在父状态中添加一个随机解析,比如
$stateProvider.state('wizard', {
url: '/wizard',
abstract: true,
resolve: {
a: function() { return 1; }
}
})
然后它可以正常工作。想知道这里发生了什么?
最佳答案
在你的 Controller 中,你必须注入(inject)你的服务 MyService,所以定义这样的东西
.state('wizard.step1', {
url: '/step1',
templateUrl: ... ,
resolve: {
name: ['myService', function(myService) {
// do something with mySerice
}]
},
controller: ['name', function(name) {
// controller codes here
}]
})
关于angularjs - 用于将服务注入(inject)子状态解析的 UI 路由器未知提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26136225/