Ich habe ein paar Probleme zu verstehen, wie man einen Dienst in angular2 korrekt erweitert, vielleicht weil ich nicht gut verstehe, wie man eine Klasse in Typoskript erweitert.angular2 Service mit Argument im Konstruktor erweitern
Oberklasse
@Injectable()
export class CallService{
constructor(private errror:string){
this.errMsg=errror;
}
private _errMsg:string;
set errMsg(arg0:string){
this._errMsg=arg0;
}
get errMsg():string{
return this._errMsg;
}
}
SubClass
@Injectable()
export class DownloadService extends CallService{
constructor(private error:string,private http:Http){
super(error)
}
}
App.Component
@Component({
selector:'my-app',
templateUrl:'app/app.component.html',
styleUrls:['app/app.component.css'],
directives:[ROUTER_DIRECTIVES,WaitComponent],
providers:[DownloadService,SwitcherService,CallService,WaitService]
})
export class AppComponent{
title:'App'
constructor(
private areadownloadservice:AreaDownloadService,
private waitService:WaitService,
private switcherservice:SwitcherService,
private callService:CallService){}
)
}
Was ich tun möchte, ist, einige Klassen mit callservice zu erweitern, so dass alle Klassen, die eine Anruf tätigen wird eine errMsg string -Eigenschaft zu setzen oder zu bekommen, aber ich bekomme diese Ausnahme:
Kein Anbieter für String!
Was habe ich verpasst?
Das Problem ist keine Unterklasse. Die Annotation vom Typ "string" im Konstruktor bewirkt, dass der Injektor nach dem "string" -Provider sucht, und es gibt keinen, und in der Komponente ist auch kein Provider für "error" definiert. – estus
ok, und was ist der richtige Weg, um einen Service auf die Art und Weise zu erweitern, wie ich oben schreibe? – mautrok
Was möchten Sie, dass Angular DI in den Parameter 'error' geht? –