Ошибка службы Angular 2. Не удается найти причину

#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 для решения этой проблемы, сообщение об ошибке неясно, я часто вижу эту ошибку.