私はライフサイクルフックが公式の文書でもウェブでも、アングラ2サービスでサポートされているかどうかについての情報は見つけられませんでした。ほとんどのフックは理解できませんが、少なくともngOnInitは非常に便利です。サービスのライフサイクルフック
@Injectable()のngOnInitは、ユーザーがいなくてもブートストラップ中にサービスをインスタンス化するが、呼び出されていないことを示しています。
import { NgModule, Inject, Injectable, OnInit, Component } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
@Component({
template: 'test',
selector: 'my-component'
})
export class MyComponent {
}
@Injectable()
export class MyService /*implements OnInit*/ {
constructor() {
console.debug('constructing MyService');
}
ngOnInit(): void {
console.debug('MyService.ngOnInit');
}
}
@NgModule({
imports: [ BrowserModule ],
providers: [
MyService
],
declarations: [MyComponent],
bootstrap: [ MyComponent ]
})
class AppModule {
}
console.debug('bootstrapping');
platformBrowserDynamic().bootstrapModule(AppModule);
https://plnkr.co/edit/98Q9QqEexYoMRxP3r1Hw?p=info
私の質問されています:それは、この仮定行動ここでのコードのデモはありますか?もしそうなら、それはおそらく文書化されるべきです。そうでない場合は、変更する必要があります。
この問題は、この(主に固定)の問題に由来する:
https://github.com/angular/angular/issues/13811
シナリオ1(問題の非固定部)が有効なコードであるかどうか私には明確ではありません。