Następujący rejestrator pomyślnie zakończył rejestrację. Inne kontrolery mogą korzystać z usługi bez problemów. Moje pytanie brzmi: jak uzyskać dostęp do dostawcy, aby skonfigurować go, zanim usługa zostanie utworzona przez usługę $injector
?Jak uzyskać dostęp do usługodawcy podczas rejestracji przy użyciu klasy maszynopisu
module apiService{
export interface IBaseService{
leagueID: number;
}
export interface IApiBaseServiceProvider extends ng.IServiceProvider{
setLeagueID(leagueID: number): void;
$get(): IBaseService;
}
class BaseServiceProvider implements IApiBaseServiceProvider{
private _leagueID: number;
$get(){
return new BaseService(this._leagueID);
}
setLeagueID(leagueID: number){
this._leagueID = leagueID;
};
}
class BaseService implements IBaseService{
constructor(private _leagueID: number){};
get leagueID(){
return this._leagueID;
}
}
angular.module('apiService').provider('apiService.baseService', BaseServiceProvider);
}
Próbowałem używać nazwy klasy jako akcesor, ale cała aplikacja nie powiedzie się.
angular.module('apiService').config(['BaseServiceProvider', function(baseServiceProvider: IApiBaseServiceProvider){
baseServiceProvider.setLeagueID(12);
}]);
The documentation pokazuje tylko przykładowe gdzie nazwany funkcja służy do wystąpienia dostawcy. Później w wyjaśnieniu nazwa nazwanej funkcji jest używana do uzyskania dostępu do dostawcy.
Ponieważ w powyższym przykładzie użyto klasy TypeScript, nie ma nazwanej funkcji do uzyskiwania dostępu do dostawcy. Jak skonfigurować usługodawcę podczas używania klasy TypeScript?
To działało jak czar. Udało mi się zachować 'apiService.baseService' i po prostu dołączyć 'Provider', tak jak poleciłeś stworzyć' apiService.baseServiceProvider'. Dziękuję bardzo za pomoc i niesamowicie szybką reakcję. – proff321
@ proff321 Tak, też by działało. Najważniejszą rzeczą jest wstrzyknięcie nazwy, w której jest zarejestrowana. – PSL