이 방법이있는 서비스가 있습니다.
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());
}
}
}
구성 요소의 생성자에서 다음과 같이 구독하고 있습니다.
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)
);
}
}
이것은 객체가 서버에서 온 경우 작동하지만 subscribe()
정적 문자열에 대한 주어진 호출 ( testModelService.fetchModel()
uuid를받지 못할 때 발생 함) 과 함께 작동하는 관찰 가능 항목을 만들려고 하므로 두 경우 모두 원활하게 처리됩니다.