代码之家  ›  专栏  ›  技术社区  ›  corry

角度替换组件

  •  0
  • corry  · 技术社区  · 6 年前

    有一种情况,数据是从两个不同的组件发送的;比如说 OneComponent TwoComponent 还有一个 ResultComponent 通过以下方式接收这些数据 Input() 装饰者。此外,在 结果成分 数据合并使用 OnChanges 接口:

      ngOnChanges(changes: SimpleChanges) {
        if (changes['dataFromCompTwo']) {
          this.dataFromComp = this.dataFromCompTwo;
        }
      }
    

    数据显示在这个组件中,但是组件被实例化两次,数据是双重的。 如何检查数据是否已经从其中一个组件发送,并且只显示上次发送的数据?

    STACKBLITZ =>我想显示 这里是结果 就一次。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Qortex    6 年前

    这是组件间通信。您应该使用所描述的技术之一 on this Angular documentation page .

    我个人喜欢 communication through a service 因为组件根本就不耦合:通信方法不依赖于它们包含在DOM中,所以您可以随意移动它们,它不会断开。

        2
  •  1
  •   Mac_W    6 年前

    如果有两个组件发送更改,则可以使用以下方法访问这些组件:

    • 更改.componentone
    • 更改.组件2

    这个 SimpleChanges 调用了另一个属性 firstChange 您可以使用它来检查这是否是来自如下特定组件的第一个更改:

    • changes.componentOne.firstchange -这意味着这是组件发送的第一个更改