在两个不同的angular2组件之间传输值?

时间:2018-01-08 10:40:26

标签: angular angular2-components

设计:

我们有两个有角度的2个组件,比如CompA和CompB。当CompB的HTML初始化时,CompA应该自动初始化。 CompB中有一些我们想要在CompA中使用的值(公共)。此外,我们在CompB中依赖注入了CompA。

问题:

我看到很多文档使用" @ output"标签和" Emitter",但我能够访问公共变量,比如CompA.V1中的CompB中的V1。 这解决了这个问题。

但这是否允许?为什么没有文件谈论它?这是一种访问敏感信息的安全方式吗?

1 个答案:

答案 0 :(得分:2)

为什么需要这样的模式来使用其他组件初始化组件? 如果要求只是为了访问其他属性,那么您可以使用以下代码段。

A Component

export class AComponent implements OnInit {
  testProperty: any[] = [5, 4, { id: 34 }, false];
  constructor() { }

  ngOnInit() {
    console.log('a init');
  }

}

B组件

import { AComponent } from '../a/a.component';
export class BComponent implements OnInit {
  componentRef:AComponent;
  constructor() { 
    this.componentRef = new AComponent();
  }

  ngOnInit() {
    console.log(this.componentRef.testProperty);
    this.componentRef.ngOnInit();
  }

}