【问题标题】:RxJs with Angular2 Bindings not getting updated带有 Angular2 绑定的 RxJs 没有得到更新
【发布时间】:2023-03-08 23:54:01
【问题描述】:

我是 Angular2 和 Rx 的新手。

我的目的是从 Git 中心获取用户并显示登录名。 (我在网上阅读 RxJs 时得到了 sn-p)我想使用 Angular 2 来实现它。

export class AppComponent implements OnInit{

  private listEmpty : boolean;
  private userList : any;
  constructor(){

  }

  ngOnInit(){
      this.listEmpty = true;
      this.userList = [];

      var reqStream = Rx.Observable.just('https://api.github.com/users');
      var responseStream = reqStream.flatMap(function(reqUrl){
        return Rx.Observable.fromPromise($.getJSON(reqUrl));
      });

      responseStream.subscribe((res)=>{
         this.userList = res;
         this.listEmpty = false;
      });

  }  
}

我的模板如下所示:

<div *ngIf="listEmpty">List empty</div>
<div *ngFor="let u of userList">
        <span>{{u.login}}</span>
</div>

问题: 在sn-p中:

responseStream.subscribe((res)=>{
             this.userList = res;
             this.listEmpty = false;
          });

当我在 chrome 控制台和 'subscribe' 函数体正在执行。 但是这些变化并没有反映在视图中。

如果我遗漏了什么,请告诉我。

【问题讨论】:

  • 试试&lt;div *ngFor="let u of (userList | async)?"&gt;
  • 不要使用 jQuery 发送 HTTP 请求。使用 Http Angular 服务,它返回一个 Observable:http.get(url).map(resp -&gt; resp.json()).subscribe(...)

标签: angular ngrx


【解决方案1】:

使用 Angular 服务通过 http 获取数据。链接在这里:-Service

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 2011-07-25
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多