#angular #angular-services
#angular #angular-services
Вопрос:
Я довольно новичок в Angular и уже некоторое время застрял. Я пытаюсь создать службу, которая получает данные из внутреннего webapi, раньше это работало, но теперь выдает ошибку, которую я не могу решить. Надеюсь, один из вас, ребята, сможет мне помочь… Служба:
import {Injectable} from "@angular/core";
import {Http} from '@angular/http';
import 'rxjs/add/operator/toPromise';
import {GraphData} from './graph-data';
@Injectable
export class GraphDataService {
private dataApiUrl = 'app/graph-data';
constructor(private http: Http) {}
getGraphData() : Promise<GraphData[]> {
return this.http.get(this.dataApiUrl)
.toPromise()
.then(response => response.json().data as GraphData[])
.catch(this.handleError);
}
private handleError(error: any): Promise<any> {
console.error('an error occurred', error); // only for demo
return Promise.reject(error.message || error);
}
}
Ошибка, которую он выдает при компиляции в js:
app/graph-data.service.ts(11,1): error TS1238: Unable to resolve signature of class decorator when called as an expression.
Supplied parameters do not match any signature of call target.
Ответ №1:
Ваш декоратор должен выглядеть так:
@Injectable()
Требуются круглые скобки
Комментарии:
1. черт, это решило мою проблему … спасибо! занимался этим несколько часов
2. Я сделал запрос на извлечение в Typescript для решения этой проблемы, сообщение об ошибке неясно, я часто вижу эту ошибку.