Saya memiliki layanan yang memiliki metode ini:
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());
}
}
}
di konstruktor komponen saya berlangganan seperti ini:
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)
);
}
}
Ini berfungsi jika sebuah objek berasal dari server tetapi saya mencoba membuat observable yang akan bekerja dengan subscribe()
panggilan yang diberikan untuk string statis (ini terjadi ketika testModelService.fetchModel()
tidak menerima uuid) sehingga ada penanganan yang mulus dalam kedua kasus.