Tôi đang có một dịch vụ có phương thức này:
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());
}
}
}
trong hàm tạo của thành phần, tôi đang đăng ký như thế này:
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)
);
}
}
Điều này hoạt động nếu một đối tượng đến từ máy chủ nhưng tôi đang cố gắng tạo một đối tượng có thể quan sát được sẽ hoạt động với lệnh subscribe()
gọi đã cho cho một chuỗi tĩnh (điều này xảy ra khi testModelService.fetchModel()
không nhận được uuid) để có cách xử lý liền mạch trong cả hai trường hợp.