gpt4 book ai didi

Angular 4 组件引用到另一个组件

转载 作者:太空狗 更新时间:2023-10-29 19:33:36 25 4
gpt4 key购买 nike

我有一个关于 Angular 4 的一般问题。

我的一位同事创建了一个 AComponent 的引用,并将其作为属性绑定(bind)到 BComponent 以访问 AComponent属性,而不是单独绑定(bind) AComponent 的属性。然后他还订阅了 AComponent 中的一个 observable。

思路是这样的:

// a.component.ts
@Component({
selector: 'some-a',
template: `<some-b [someRefToAComponent]="someRefToThis">...</some-b>`
})
export class AComponent {
someRefToThis = this;
someObservable: Observable<any>;
}

// b.component.ts
@Component({
selector: 'some-b',
template: `...`
})
export class BComponent {
@Input() someRefToAComponent: AComponent;
someSubscription: Subscription<any>;

ngOnInit() {
this.someRefToAComponent.someObservable.subscribe(...);
}

ngOnDestroy() {
this.someSubscription.unsubscribe();
}
}

这是我的问题:这是一种不好的做法还是非常糟糕的做法?另外:在这种情况下会发生什么?它会导致内存泄漏吗?

知道会发生什么会很有趣,因为我还没有深入了解 Angular 的内部功能。

最佳答案

最终,当谈到以 Angular 方式做事时,我会认为这是“违背常理”的。听起来您真正需要的是服务。需要交互并可从多个端点访问的数据,无论它们是组件还是模块,都应包含在服务中。

另一种选择是使用 Data Binding 在组件之间传递数据.

这就是真正需要了解 Angular 中的依赖注入(inject)系统的地方。服务旨在成为允许组件与类似数据交互的应用程序单例。

我真的建议看一下有关 Dependency Injection 的文档.

关于Angular 4 组件引用到另一个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48330273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com