【发布时间】:2015-02-17 14:20:40
【问题描述】:
我已经这样定义了我的 UI-Router 状态:
$stateProvider.state('contact', {
url: '/contactDemo',
views: {
'main': {
controller: 'contactMainController',
templateUrl: 'templates/contact.tpl.html'
}
}
}).state('contact.details', {
abstract: true,
controller: 'contactDetailsController',
templateUrl: 'templates/contact.details.tpl.html'
}).state('contact.details.add', {
url: '/add'
}).state('contact.details.filter', {
url: '/filter/{filterId}'
}).state('contact.details.filter.record', {
url: '/record/{recordId}',
resolve: {
record: ['$stateParams', 'Restangular', function($stateParams, Restangular) {
return Restangular.one('records', $stateParams.recordId).get();
}]
}
}).state('contact.details.filter.record.edit', {
url: '/edit'
});
现在我想将解析后的record 注入contactDetailsController。如果这样做,我会收到 Unknown provider 错误。我无法将resolve 移动到抽象状态,因为从那里我无法访问$stateParams 中的ID。
如果我将controller 属性向下移动到子状态,我的控制器永远不会被调用。
有人知道我如何将已解析的属性注入到抽象父状态的控制器中吗?
【问题讨论】:
标签: angularjs angular-ui-router