我試圖檢索用戶的地理位置,然後在單獨的api調用中使用它。當我做到以下我得到這個錯誤。該服務是'getLegislatorByLocation',它位於geoSuccess方法中。使用服務的方法
EXCEPTION: TypeError: Cannot read property 'getLegislatorByLocation' of undefined
export class LocalLegislatorsComponent implements OnInit {
constructor(private _legislatorService: LegislatorService) {
}
ngOnInit(): void {
this.geoFindUser();
}
geoFindUser(): void {
if (!navigator.geolocation) {
this.geoSupport = false;
return;
}
navigator.geolocation.getCurrentPosition(this.geoSuccess, this.geoError);
}
geoSuccess(position): void {
this.geoSupport = true;
this.latitude = position.coords.latitude;
this.longitude = position.coords.longitude;
this._legislatorService.getLegislatorByLocation(this.latitude, this.longitude)
.subscribe(legislators => this.legislators = legislators, error => this.errorMessage = <any>error);
}
geoError(): void {
console.log('Unable to retrieve location');
this.geoSupport = false;
}
}
難道我莫名其妙地需要注入服務進入方法?
能否請你嘗試'的console.log(_legislatorService)'添加到構造和發佈它所打印的?除了使用構造函數進行注入之外,您不需要執行任何操作。還有其他的錯誤。您是否已將'LegislatorService'添加到'providers'? –
'LegislatorService',如果你寫的,需要'@Injectable'裝飾器,並且應該在引導程序調用中添加到組件的提供者或提供者數組中。 – rinukkusu
它擁有@Injectable裝飾器。如果我在「ngOnInit()」中調用它,它工作正常當我將它移入geoSuccess()方法時發生問題 – dave