也许这个问题的答案也与AngularJS(1.x)相关,但我的问题是Angular 2及以上版本。
众所周知,每个组件文件都有自己的ngOnInit函数,该函数在组件初始化时运行其中的代码。 在我当前的应用程序中,我需要在所有这些函数中,在所有组件中自动运行相同的代码。 现在,我只是为每个组件的TS文件复制这些函数之间的代码。 有没有办法将此代码放在一个公共位置,并让所有这些初始化函数自动从那里运行?这意味着,即使添加到应用程序中的全新组件也将运行此代码,作为其初始化函数的一部分......
答案 0 :(得分:4)
组件是类,因此可以扩展(抽象)基类,示例代码:
BaseClass的:
export abstract class AppBaseComponent implements OnInit {
constructor() { }
ngOnInit() {
// Your base code here
}
}
扩展班级
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent extends AppBaseComponent implements OnInit {
constructor() {
super();
}
// Your component specific code here
}