如何创建一个可观察到从静态数据类似于HTTP之一角2 [英] How to create an Observable from static data similar to http one in Angular 2

查看:203
本文介绍了如何创建一个可观察到从静态数据类似于HTTP之一角2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有具有此方法的服务:

I am having a service that has this method:

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());
        }
    }
}

在组件的构造我预订是这样的:

in the component's constructor I am subscribing like this:

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)
      );
   }
}

这工作,如果一个对象来自server..but我想创建一个可观察的,将与给定现有的订阅()调用一个静态的字符串的工作(这发生在 testModelService。 fetchModel()没有给出一个UUID)因此在这两种情况下的无缝处理。这可能吗?

This works if an object comes from the server..but I am trying to create an observable that will work with the given the existing subscribe() call for a static string (this happens when testModelService.fetchModel() isn't given a uuid) so there is seamless handling in both cases. Is this possible?

任何帮助AP preciated!谢谢!

Any help is appreciated! Thanks!

推荐答案

也许你可以尝试使用的 的方法 Obserable 类:

Perhaps you could try to use the of method of the Obserable class:

public fetchModel(uuid: string = undefined): Observable<string> {
  if(!uuid) {
    return Observable.of(new TestModel()).map(o => JSON.stringify(o));
  }
  else {
    return this.http.get("http://localhost:8080/myapp/api/model/" + uuid)
            .map(res => res.text());
  }
}

这篇关于如何创建一个可观察到从静态数据类似于HTTP之一角2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆