【发布时间】:2016-01-12 19:33:13
【问题描述】:
我想创建一个具有初始行为的 AbstractComponent,同时能够在需要时在子级上覆盖它,这可能吗?这是一个好习惯吗?
应该或多或少是这样的:
export abstract class AbstractComponent implements OnInit {
constructor(authService: AuthService, router: Router) {}
ngOnInit() {
if (authService.userNotLoggedInAnymore()) {
router.navigate(['Login']);
}
}
...
}
【问题讨论】:
-
您在使用这种方法时遇到问题了吗?
-
我想知道如何为 Authservice 和 Router 指定提供者,因为我不能使用 @Component 注释,主要是因为它没有模板。这让我想知道 Angular 2 是否是为此设计的目的
-
我猜您无论如何都会在
bootstrap()中指定此类提供程序,而不是在每个组件上。如果你想要一个单例,你必须只在bootstrap()中传递它,否则会为每个组件创建一个新实例。 -
哦,真的吗?这对我来说是新的:O
-
只有您真正想要为每个组件创建一个新实例的提供者才应在
@Component(providers: [])中列出。
标签: angular architecture abstraction