Injectable クラスがインスタンス化されているときに ngOnInit が呼び出されない 質問する

Injectable クラスがインスタンス化されているときに ngOnInit が呼び出されない 質問する

ngOnInit()クラスが解決されたときに が呼び出されないのはなぜですかInjectable?

コード

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()

ベストアンサー1

ライフサイクルフックディレクティブやコンポーネントでは機能しますOnInit()。あなたの場合のサービスのような他のタイプでは機能しません。ドキュメントより:

コンポーネントには、Angular 自体によって管理されるライフサイクルがあります。Angular はコンポーネントを作成し、レンダリングし、その子を作成およびレンダリングし、データ バインドされたプロパティが変更されたときにチェックし、DOM から削除する前に破棄します。

ディレクティブとコンポーネントのインスタンスには、Angular によって作成、更新、破棄されるライフサイクルがあります。

おすすめ記事