Yuj*_* Wu 6 angularjs angular-ui-router
将服务注入子状态解析功能时获得未知提供程序.但如果在父状态中定义了一个解决方案,它就可以正常工作.下面是一些示例代码:
我定义了一个服务模块
angular.module('services', [])
.factory('myService', function() {
// my service here
})
Run Code Online (Sandbox Code Playgroud)
并初始化应用程序
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
}
})
}]);
Run Code Online (Sandbox Code Playgroud)
我在wizard.step1解决方案中收到错误未知提供程序抱怨myService的错误.但是,如果我在父状态中添加随机解析,就像
$stateProvider.state('wizard', {
url: '/wizard',
abstract: true,
resolve: {
a: function() { return 1; }
}
})
Run Code Online (Sandbox Code Playgroud)
然后它可以正常工作.不知道这里发生了什么
在你的控制器中,你必须注入你的服务 MyService,所以定义如下
.state('wizard.step1', {
url: '/step1',
templateUrl: ... ,
resolve: {
name: ['myService', function(myService) {
// do something with mySerice
}]
},
controller: ['name', function(name) {
// controller codes here
}]
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14815 次 |
| 最近记录: |