3

也许这个问题的答案也与 AngularJS (1.x) 有关,但我的问题是针对 Angular 2 及更高版本的。

众所周知,每个组件文件都有自己的 ngOnInit 函数,该函数在组件初始化时运行其中的代码。在我当前的应用程序中,我需要在所有这些函数、所有组件中自动运行相同的代码。现在,我只是为每个组件的 TS 文件复制这些函数之间的代码。有没有办法把这段代码放在一个公共的地方,然后让所有这些初始化函数从那里自动运行它?这意味着,即使是添加到应用程序中的全新组件也会运行此代码,作为其初始化函数的一部分......

4

1 回答 1

5

组件是类,因此可以扩展(抽象)基类,示例代码:

基类:

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
}
于 2018-05-08T12:59:48.757 回答