这更多的是一个结构性问题,而不是与bug相关的问题。我正在按照广泛使用的核心、共享和功能模块结构(如one 这里 )编写一个角度应用程序。我也在核心模块中定义了一个单例通知服务,但我使用以下自定义组件来自定义通知:
this.snackBar.openFromComponent(
SnackbarComponent,
configuration
);和SnackbarComponent
@Component({
selector: "snackbar",
templateUrl: "./snackbar.component.html",
styleUrls: ["./snackbar.component.scss"]
})
export class SnackbarComponent {
constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) {}
}我感到困惑的是,应该把这个组件的声明放在哪里。
注意,这只是一个例子,来说明这个问题。我还有其他一些类似的情况,核心服务依赖于组件(对话框服务、语言服务)。
任何解决这个问题的架构建议都是值得赞赏的。
很抱歉有这么长的问题。
发布于 2020-05-22 00:52:51
经过几个小时的思考,我想出了一个解决方案,就是将组件作为参数传递给服务:
open(component: SnackbarComponent) {
this.snackBar.openFromComponent(
component,
configuration
);
}不会因为有人比我有更好的解决办法而结束这个问题。
https://stackoverflow.com/questions/61944002
复制相似问题