在官方文件中:
https://ui-router.github.io/docs/latest/modules/ng1.html,在示例中:
MyController.$inject = ['$transition$'];
function MyController($transition$) {
var username = $transition$.params().username;
// .. do something with username
}
$ transition $被注入到控制器中,但是当我使用angular 1.6.1和ui-router 1.0.0-beta.3执行相同操作时,我使用组件架构时出现以下错误: 错误:[$ injector:unpr]未知提供者:$ transition $ Provider
我只能在解决方案中注入$ transition $。
答案 0 :(得分:1)
来自ui-router Route to Component指南:
路由到旧版样式模板/控制器(不路由到 组件),转换可以注入$ transition $。
...
要在路由的组件上访问“转换”,您应该绑定到 在您的组件中$ $ $。
正如您所指出的,因此只能通过路由到组件时的解析来访问它。这是因为$transition$
服务是一个本地范围的注入,不适用于组件。可在问题ui-router#3110
答案 1 :(得分:0)
您正在尝试注入'$ transition $'对象,您应该将'$ transitions'服务注入控制器。请参阅本页文档中的区别:
https://ui-router.github.io/ng1/docs/latest/modules/injectables.html#transition
答案 2 :(得分:0)
$transition$
不是全局service
,而是局部范围的injectable
。
https://github.com/angular-ui/ui-router/issues/3110
您可以使用组件输入绑定来解决此问题:
.component('adminApplicants',{
bindings: { $transition$: '<' },
templateUrl:'admin.applicants.html',
controller:function($http,$transition$){
}
})