从子组件更新ng-template

时间:2019-10-08 19:45:19

标签: angular ng-template ng-content

我正在使用ng-template将内容传递给子组件,但我希望从子组件中获取选定项的特定值

我也有一个大子级组件,该值从“大子级”组件发射到“子级”组件,然后再发射到“父级”组件。

虽然我可以获取选择的值,但是对于完整的ng-template,它会呈现相同的值

例如:如果我单击上一个div,则所有“选定值”都变为“ 3”

enter image description here

您可以在stackblitz下查看更好的主意

https://stackblitz.com/edit/angular-rfvkoj

编辑:如何让它呈现特定的选定值?

1 个答案:

答案 0 :(得分:0)

它正在按预期工作。它呈现相同的值,因为您在模板的每次迭代中都呈现{{selected}},并且selected设置为从ChildComponent发出的最新值。您希望它呈现什么?

顺便说一句,使用@Input通过多个级别(从父级到子级到孙级)发送数据是一种糟糕的模式。这很快变得难以管理。甚至您很小的代码示例也已经很难理解。

我建议您使用父级提供的共享服务

@Component({
  ...
  providers: [MyService]
})
export class ParentComponent {
  ...
}

然后可以将该服务注入到父母和孙子女中,并使用该服务来跟踪状态。