【问题标题】:Updating ng-template from child component从子组件更新 ng-template
【发布时间】:2020-02-06 03:19:47
【问题描述】:
我正在使用 ng-template 将内容传递给子组件,但我希望从子组件中获取所选项目的特定值
我也有一个大子组件,值从大子组件发出到子组件,然后到父组件。
虽然我可以得到选定的值,但它为完整的 ng-template 呈现相同的值
例如:如果我点击最后一个 div,所有的 Selected 值都变为“3”
你可以在stackblitz下面有更好的想法
https://stackblitz.com/edit/angular-rfvkoj
编辑:如何让它呈现特定的选定值?
【问题讨论】:
标签:
angular
ng-template
ng-content
【解决方案1】:
它按预期工作。它呈现相同的值,因为您在模板的每次迭代中都呈现{{selected}},并且selected 设置为从ChildComponent 发出的任何最新值。你期望它呈现什么?
顺便说一句,使用@Input 通过多个级别(从父级到子级到孙子级)发送数据是一种糟糕的模式。这很快变得难以管理。即使是非常小的代码示例也已经难以理解。
我建议您改为使用在父级提供的共享服务
@Component({
...
providers: [MyService]
})
export class ParentComponent {
...
}
然后,您可以将该服务注入父级和孙级,并使用该服务来跟踪状态。