设计:
我们有两个有角度的2个组件,比如CompA和CompB。当CompB的HTML初始化时,CompA应该自动初始化。 CompB中有一些我们想要在CompA中使用的值(公共)。此外,我们在CompB中依赖注入了CompA。
问题:
我看到很多文档使用" @ output"标签和" Emitter",但我能够访问公共变量,比如CompA.V1中的CompB中的V1。 这解决了这个问题。
但这是否允许?为什么没有文件谈论它?这是一种访问敏感信息的安全方式吗?
答案 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();
}
}