【问题标题】:Angular 2 Pass Data from Component B to the template defined by Component BAngular 2 将数据从组件 B 传递到组件 B 定义的模板
【发布时间】:2016-12-15 23:02:37
【问题描述】:

我有点不好意思问这个问题,因为我担心答案很明显,但对我来说是虚幻的。

我有三个组件 A、B 和 C。每个组件都有一个模板。 组件 A 的模板包含自定义标签 ,当然组件 B 的模板包含自定义标签 。

现在我有一大块数据需要从组件 B 流向 C,现在如果我从 B 中 @Output,数据将绑定到组件 A 模板……或类似的东西。这不会使 C 可以使用它,因为它不共享模板。

似乎我需要能够从组件 B 将数据“输出”到 B 上的模板,但这似乎是循环的。我已经使用@ViewChild 查看了模板引用变量,但这似乎无法使数据在模板 B 上可见。

很明显,我遗漏了一些明显的东西,有什么想法吗?

【问题讨论】:

  • 您可以直接在其模板中使用组件属性。如果声明name并设置this.name = 'steve',则可以在模板{{ name }}中显示,或者传递给其他组件<c [data]="name">。那是你想要的吗?如果没有,请提供一些代码,因为不清楚您要做什么......
  • @Sasxa ;非常感谢这实际上是完全正确的。现在我可以确定这是正确的方法,我可以尝试找出为什么这种方法在我的特定情况下不起作用。
  • @Sasxa;再次感谢您对这个问题的帮助。如果将来有人遇到此问题,我想添加一个结束摘要说明以结束任何松散的结尾。

标签: templates angular data-binding


【解决方案1】:

回顾一下...我有三个组件 A、B 和 C。每个组件都有一个关联的模板。组件A的模板包含自定义标签<Bx>,组件Bx的模板包含自定义标签<C>。需要将数据对象从 A 传递到 C。此数据对象在组件 A 的“this”范围内定义为“this.data”,因此此数据传输的第一步是在组件中包含 @Import() data: Obj B 然后在 A 的模板中添加<B [data]="data"></B>。这个@Import 语句使this.data 可用于组件B,然后可以将其作为<C [data]="data"></C> 放置在组件B 的模板中。

非常感谢@Sasxa 的指导,我对叙述方式表示歉意,但这是解释我的情况和解决方案的最清晰的方式。

【讨论】:

    猜你喜欢
    • 2018-03-29
    • 2018-01-16
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2017-06-15
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多