设计:
我们有两个角度的 2 个组件,比如 CompA 和 CompB。当 CompB 的 HTML 初始化时,CompA 应该会自动初始化。CompB 中有一些值(公共),我们希望在 CompA 中使用。此外,我们在 CompB 中注入了依赖关系 CompA。
问题:
我看到很多使用"@output"标签和"发射器"的文档,但我能够通过 CompA.V1 访问公共变量,比如 CompB 中的 V1。 这就解决了问题。
但这甚至允许吗?为什么没有文档谈论它?这是访问敏感信息的安全方式吗?
为什么需要这样的模式来用另一个组件来初始化一个组件? 如果要求只是获取其他属性的访问权限,则可以使用以下代码片段。
一个组件
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();
}
}