Angular 2+ - 自动在所有ngOnInit上运行相同的代码

时间:2018-05-08 12:50:55

标签: angular ngoninit

也许这个问题的答案也与AngularJS(1.x)相关,但我的问题是Angular 2及以上版本。

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

1 个答案:

答案 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
}