1. ホーム
  2. ジャバスクリプト

[解決済み】InjectableクラスのInstantiated時にngOnInitが呼ばれない。

2022-04-02 03:35:08

質問

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

解決方法は?

ライフサイクルフック のように OnInit() は、ディレクティブとコンポーネントで動作します。他の型(例えば、あなたの場合、サービス)では動作しません。docsから。

<ブロッククオート

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

ディレクティブとコンポーネントインスタンスは、Angularが作成、更新、破棄を行うことでライフサイクルを持ちます。