Мне нужно загрузить конфигурацию из службы на начальном уровне Angular. Итак, для демонстрации я создал загрузочный модуль, класс загрузки и загрузил APP_INITIALIZER из ядра Angular в загрузочный модуль.
Проверьте следующий файл, я не вижу console.info ("Функция инициализации работает"), а также console.info ("ПОЛУЧИТЬ КОНФИГУРАЦИЮ РАБОТАЕТ")
Пожалуйста, поправьте меня, если что-то не так.
// Файл модуля boot.modue.ts
import { APP_INITIALIZER, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Boot, Config, Menu } from './../../core/classes';
import { MenusService } from './../services/';
export function init(_boot: Boot) {
console.info("Init Function works");
return () => {
return _boot.getConfig();
};
}
@NgModule({
imports: [
CommonModule
],
declarations: [],
providers: [Boot,
{ provide: APP_INITIALIZER,
useFactory: init,
deps: [Boot], multi: true
}]
})
export class BootModule {
constructor() { }
}
// Файл класса boot.ts
import 'rxjs/add/operator/toPromise';
export class Boot {
/**
* getConfig
*/
public getConfig(): Promise<any> {
console.info("getConfig");
return new Promise((resolve, reject) => {
setTimeout(() => {
console.info("GET CONFIG WORKS");
resolve();
}, 3000);
});
}
/**
* initMenus
*/
public initMenus() {
}
}
Помимо init1, я не понимаю, почему это не должно работать. Можете ли вы воспроизвести проблему в Plunker или stackblitz?
init1 мистическим образом произошел при добавлении вопроса в StackOverflow, на самом деле, его init и проверили это локально, но не работает, даже не может видеть сообщения консоли.
Хорошо, я проверю это на stackblitz и здесь.
Кажется, что у вас все работает нормально: stackblitz.com/edit/angular-fz99h8?file=app%2Fapp.module.ts





Может быть, это просто опечатка, но вы определили функцию
initи сослались наinit1.