如何在不使用@Output 的情况下在 Angular2 rc6 的 child/parent 组件中共享参数变量?
How to share params variables in child/parent components in Angular2 rc6 without using @Output?
我需要在父组件中访问发送到子组件的 Params 变量。
我有以下结构:
路由:(摘录)
{
path: 'song',
component: SongExerciseComponent,
children: [
{
path: 'reading/:id',
component: SongReadingComponent,
}
]
}
父组件只是一个包含导航链接的模板。
我可以像这样访问子组件中的 :id 变量:
ngOnInit(): void {
this.route.params.forEach((params: Params) => {
if (params['id'] !== undefined) {
let id = +params['id'];
现在我需要在父组件中使用相同的变量,以便在父模板中使用。
哪种方法最有效?共享服务?
https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#parent-and-children-communicate-via-a-service
您可以创建共享服务或使用 Ngrx 商店,灵感来自 Redux for Angular2。
在那里你可以读到它 - https://gist.github.com/btroncone/a6e4347326749f938510
此解决方案的优点是您可以订阅 更改并对它们作出反应。此外,数据是不可变的,因此您不会错误地更改某些内容。如果对你来说不重要,就用服务吧。
我需要在父组件中访问发送到子组件的 Params 变量。
我有以下结构:
路由:(摘录)
{
path: 'song',
component: SongExerciseComponent,
children: [
{
path: 'reading/:id',
component: SongReadingComponent,
}
]
}
父组件只是一个包含导航链接的模板。 我可以像这样访问子组件中的 :id 变量:
ngOnInit(): void {
this.route.params.forEach((params: Params) => {
if (params['id'] !== undefined) {
let id = +params['id'];
现在我需要在父组件中使用相同的变量,以便在父模板中使用。
哪种方法最有效?共享服务? https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#parent-and-children-communicate-via-a-service
您可以创建共享服务或使用 Ngrx 商店,灵感来自 Redux for Angular2。
在那里你可以读到它 - https://gist.github.com/btroncone/a6e4347326749f938510
此解决方案的优点是您可以订阅 更改并对它们作出反应。此外,数据是不可变的,因此您不会错误地更改某些内容。如果对你来说不重要,就用服务吧。