Sto avendo un servizio che ha questo metodo:
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());
}
}
}
nel costruttore del componente mi sto iscrivendo in questo modo:
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)
);
}
}
Funziona se un oggetto proviene dal server ma sto cercando di creare un osservabile che funzioni con la subscribe()
chiamata data per una stringa statica (questo accade quando testModelService.fetchModel()
non riceve un uuid) quindi c'è una gestione senza soluzione di continuità in entrambi i casi.