Ich habe einen Dienst mit dieser Methode:
export class TestModelService {
public testModel: TestModel;
constructor( @Inject(Http) public http: Http) {
}
public fetchModel(uuid: string = undefined): Observable<string> {
if(!uuid) {
//return Observable of JSON.stringify(new TestModel());
}
else {
return this.http.get("http://localhost:8080/myapp/api/model/" + uuid)
.map(res => res.text());
}
}
}
Im Konstruktor der Komponente abonniere ich Folgendes:
export class MyComponent {
testModel: TestModel;
testModelService: TestModelService;
constructor(@Inject(TestModelService) testModelService) {
this.testModelService = testModelService;
testService.fetchModel("29f4fddc-155a-4f26-9db6-5a431ecd5d44").subscribe(
data => { this.testModel = FactModel.fromJson(JSON.parse(data)); },
err => console.log(err)
);
}
}
Dies funktioniert, wenn ein Objekt vom Server stammt, ich jedoch versuche, ein Observable zu erstellen, das mit dem angegebenen subscribe()
Aufruf einer statischen Zeichenfolge testModelService.fetchModel()
funktioniert (dies geschieht, wenn keine UUID empfangen wird), sodass in beiden Fällen eine nahtlose Verarbeitung erfolgt.