[英]Passing data into a downgraded Angular2 component within an Angular1 Application
[英]Accessing $stateParams within an Angular downgraded component
我目前正在开发一个混合项目 Angular/AngularJS,我们正在使用 Angular 的downgradeComponent
,它运行得非常好。
除了相当容易的动态之外,有时我们会遇到一些障碍。 有这个页面使用 url 参数来实现一些功能,在 AngularJS 中运行良好,但现在,路由到新的 Angular 版本根本不起作用,
之前的路由 state,指向旧页面看起来是这样的:
.state('userEdit', {
title: 'routes_userEdit',
url: '/user/:id',
template: require('html-loader!./user/userEdit.html').default,
controller: 'UserEditController'
})
这样,可以在UserEditCntroller.js
上使用$stateParams.id
轻松访问id
参数
但是现在,有了新的 Angular 组件,它看起来像这样
.state('userEdit', {
title: 'routes_userEdit',
url: '/user/:id',
template: `<ng2-user-edit></ng2-user-edit>`
})
它与前面的代码类似,但模板是 Angular 组件,它无法访问 AngularJS 的$stateParams
。
我的问题是.. 如何在 Angular2+ 降级组件中访问$stateParams
? 我已经尝试过使用 Angular 的ActivatedRoute
组件,但它返回一个空的参数数组。
如果 Angularjs 规则路由,你可以像往常一样访问$stateParams
ng1 服务:
providers: [
{provide: '$stateParams', useFactory: (i: any) => i.get('$stateParams'), deps ['$injector']}
]
在组件@Inject('$stateParams') $stateParams
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.