为什么ngOnInit()不被调用时,注入类是解析?
Code
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()
注意:这个答案只适用于Angular的组件和指令,不适用于服务。
当ngOnInit(和其他生命周期钩子)没有为我的组件启动时,我也遇到了同样的问题,大多数搜索将我引导到这里。
问题是我使用的箭头函数语法(=>)是这样的:
class MyComponent implements OnInit {
// Bad: do not use arrow function
public ngOnInit = () => {
console.log("ngOnInit");
}
}
显然,这在Angular 6中不起作用。使用非箭头函数语法修复了这个问题:
class MyComponent implements OnInit {
public ngOnInit() {
console.log("ngOnInit");
}
}
注意:这个答案只适用于Angular的组件和指令,不适用于服务。
当ngOnInit(和其他生命周期钩子)没有为我的组件启动时,我也遇到了同样的问题,大多数搜索将我引导到这里。
问题是我使用的箭头函数语法(=>)是这样的:
class MyComponent implements OnInit {
// Bad: do not use arrow function
public ngOnInit = () => {
console.log("ngOnInit");
}
}
显然,这在Angular 6中不起作用。使用非箭头函数语法修复了这个问题:
class MyComponent implements OnInit {
public ngOnInit() {
console.log("ngOnInit");
}
}