我有用TypeScript編寫的服務。喜歡的東西:Typescript AngularJS'this'is undefined
export default class AServiceClass {
constructor(private $http: ng.IHttpService, ...) {}
method1(data : any) : void {
this.$http(...)
}
method2(data : any) : void {
this.$http(...)
}
}
而且我有一個控制器類,利用此服務:
export default class AControllerClass {
constructor(private aService: AServiceClass, ...) {}
$onInit(){
let method = true ? this.aService.method1 : this.aService.method2;
method({ ... data ... });
}
}
服務方法拋出一個異常 - this is undefind
。如果我使用它像this.aService.method1({ ... data ... })
,一切都很好。 Ofc我可以做method.bind(aService)({ ... data ... })
或method.call(aService, { ... data ... })
,但爲什麼有一個範圍差異?
Thx。
這個$ OnInit的,而不是$ ngInit,應該工作。不確定角1對我來說已經有點回頭了,但試試吧。這個。$ onInit = function(){你的代碼}; – Doomenik
啊,這是一個例子中的錯誤,ofc $ onInit。 Thx – Kindzoku
它仍然會拋出「這是未發現的」? – Doomenik