本文介绍了当注射类实例化ngOnInit不会被调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何想法,为什么 ngOnInit()注射类解决就不叫?

code

 进口{注射,OnInit中}从'angular2 /核心;
进口{RestApiService,RestRequest}从'./rest-api.service';@Injectable()
出口类MovieDbService实现的OnInit {    构造函数(私人_m​​ovieDbRest:RestApiService){
        window.console.log('FROM构造函数()');
    }    ngOnInit(){
         window.console.log('FROM ngOnInit()');
    }    公共getMovie(){任何
        window.console.log('FROM getMovie())
        this._movieDbRest.globalParameters ['API_KEY'] = MOVIE_DB_API_KEY;
        this._movieDbRest.baseUrl = MOVIE_DB_BASE_URL;
        VAR movieRequest =新RestRequest();
        movieRequest.endPoint ='/发现/ tt1431045';
        movieRequest.parameters ['EXTERNAL_SOURCE'] ='imdb_id';
        VAR promiseToReturn:无极<字符串取代;        promiseToReturn =新承诺<串GT;(解析= GT;
            this._movieDbRest.executeRequest(movieRequest)。然后(电影= GT; {
                解析(动画);
                window.console.log(电影);
            }
        ));
        返回promiseToReturn;
    }
}

控制台输出

 从构造函数()
FROM getMovie()


解决方案

生命周期挂钩,如的OnInit()与指令和组件工作。他们不与其他类型的工作,像你的情况的服务。从文档:

这篇关于当注射类实例化ngOnInit不会被调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-18 15:07