假设我想写一个名为“alert-button”的Angular模块。每次按“提醒按钮”时,都应该有一个提示“嗨!”。所以我的警报按钮组件看起来有点像这样:
<button (click)="doAlert()">Alert!</button>
但现在让我们说,我希望模块的用户可以将自己的按钮与我的警报模块一起使用。所以我会尝试做类似的事情:
@NgModule({})
export class TaskModule {
static forRoot(AppButtonModule)
return {
ngModule: TaskModule,
imports: [AppButtonModule],
providers: [AlertService]
}
}
}
所以在模块中,我正在尝试使用部分来电者。然后,模块的组件可能如下所示:
<app-button (click)="doAlert()">Alert!</app-button>
我可以通过“提供您自己的按钮来记录我的模块,因此该模块与您的应用程序的样式相匹配”。模块的每个用户都必须为模块提供另一个模块,该模块具有带选择器“app-button”的组件。
但是,我上面建议的这种方法不起作用,你不能简单地将导入换成root用户。还有另一种方法可以达到预期的行为吗?也许是懒惰加载或类似的东西?
目标是得到这样的东西: