Angular 2+ - запускать тот же код на ВСЕХ ngOnInit автоматически - PullRequest
0 голосов
/ 08 мая 2018

Возможно, ответ на этот вопрос актуален и для AngularJS (1.x), но мой вопрос здесь касается Angular 2 и выше.

Как мы знаем, каждый файл компонента имеет свою собственную функцию ngOnInit, которая запускает код внутри него, когда компонент инициализируется. В моем текущем приложении мне нужно запустить один и тот же кусок кода во ВСЕХ этих функциях, во ВСЕХ компонентах и ​​автоматически. Прямо сейчас я просто копирую код между этими функциями для файла TS каждого компонента. Есть ли способ поместить этот код один раз в обычное место, и все эти функции инициализации запускают его оттуда автоматически? Это означает, что даже совершенно новые компоненты, добавленные в приложение, будут выполнять этот код как часть их функции инициализации ...

1 Ответ

0 голосов
/ 08 мая 2018

Компоненты - это классы, которые могут расширять (абстрактные) базовые классы, пример кода:

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
}
...