实例化 Injectable 类时未调用 ngOnInit

新手上路,请多包涵

为什么解决了 Injectable 类时没有调用 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()

原文由 Levi Fuller 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 472
2 个回答

生命周期钩子,例如 OnInit() 与指令和组件一起使用。它们不适用于其他类型,例如您的服务。来自文档:

组件的生命周期由 Angular 自己管理。 Angular 创建它,渲染它,创建和渲染它的子节点,当它的数据绑定属性发生变化时检查它,并在从 DOM 中删除它之前销毁它。

指令和组件实例在 Angular 创建、更新和销毁它们时具有生命周期。

原文由 Sasxa 发布,翻译遵循 CC BY-SA 4.0 许可协议

_添加@Sasxa 的回答_,

In Injectables you can use class normally that is putting initial code in constructor instead of using ngOnInit() , it works fine.

原文由 Chanel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题