我对Angular 4有一个疑问。
我的一位同事创建了AComponent
的引用,并将其绑定为BComponent
的属性以访问AComponent
的属性,而不是绑定AComponent
单独{1}}个属性。然后他还订阅了AComponent
中的一个观察者。
这是一个想法:
// 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的内部功能。
答案 0 :(得分:0)
最终,我会考虑这个&#34;反对谷物&#34;当谈到以Angular方式做事时。听起来你真正需要的是服务。需要交互并可从多个端点访问的数据(无论是组件还是模块)都应包含在服务中。
另一种选择是使用Data Binding在组件之间传递数据。
这是理解Angular中的依赖注入系统真正成为一种要求的地方。服务是应用程序单例,允许组件与类似的数据交互。
我真的建议您查看有关Dependency Injection的文档。