Я следовал инструкции здесь по обновлению проекта angularjs.
Однако в кодовой базе, которую я действительно хочу обновить, уже есть классы ts для большинства служб, поэтому я следовал официальному руководству , которое заменяет телефонную службу angularjs классом ts. Так что теперь у меня есть класс ts для телефонной службы, но когда я запускаю приложение с ng serve
, телефонная служба является неизвестным поставщиком.
- Я попытался добавить
"types": ["angular"]
к своему tsconfig.
- Я попытался объявить угловой в служебном файле
import { Injectable } from "@angular/core";
import { Observable } from "rxjs";
import { HttpClient } from "@angular/common/http";
import { IPhoneData } from "../../interfaces/IPhoneData";
// angular does not get resolved during compilation this way
// declare var angular: angular.IAngularStatic;
// Phone is an unknown provider this way
declare var angular: any;
import { downgradeInjectable } from '@angular/upgrade/static';
@Injectable()
export class Phone {
constructor(private http: HttpClient) { }
query(): Observable<IPhoneData[]> {
return this.http.get<IPhoneData[]>(`phones/phones.json`);
}
get(id: string): Observable<IPhoneData> {
return this.http.get<IPhoneData>(`phones/${id}.json`);
}
}
angular.module('core.phone')
.factory('phone', downgradeInjectable(Phone));
Как я могу получить класс обслуживания телефона, внедренный в компонент angularjs? Ссылка на мой репо .