Injectable
クラスが解決されたときにngOnInit()
が呼び出されないのはなぜですか?注入可能クラスがインスタンス化されたときにngOnInitが呼び出されない
コード
import {Injectable, OnInit} from 'angular2/core';
import { RestApiService, RestRequest } from './rest-api.service';
@Injectable()
export class MovieDbService implements OnInit {
constructor(private _movieDbRest: RestApiService){
window.console.log('FROM constructor()');
}
ngOnInit() {
window.console.log('FROM ngOnInit()');
}
}
コンソール出力
FROM constructor()
私の 'ngOnInit'ロジックを' Injectable'クラスのコンストラクタに移動するだけですか?私はちょうど何らかの理由でコンストラクタからロジックを取り除くべきであるということを読んで思い出しました。 –
@LeviFullerさて、サービスの場合、コンストラクタで初期化を行うことができます。あるいは、initメソッドを作成してコンストラクタから呼び出すこともできます(後でサービスをリセットする必要がある場合など)。 – Sasxa
パーフェクト。ありがとう。なぜなら、Componentは初めてインスタンス化されるだけなので、コンストラクタは最初に呼び出され、ngOnInitはコンポーネントがレンダリングされるたびに呼び出されるからです。それは正しいようですか? –