2017-07-06 103 views
1

我有一个函数,当单击表中的一行时,返回Observable角度2-4可见的来自点击事件

private onEnrollmentHistory(val: Enrollment[]) { 
     this.enrollments = val; 
     console.log(this.enrollments); 
    } 

    getEnrollmentHistoryById(id: number) { 
     this.toggleMoreInfoDialog(); 
     return this.store.getEnrollmentHistoryById(id) 
      .subscribe(
       this.onEnrollmentHistory 
      ); 
    } 

我不确定如何将此信息导入组件HTML。 我不能这样做<div *ngFor="let enroll of someService | async">,因为直到有人点击ID,ID才会知道。是否有一些语法我错过了一些绑定到这个Observable的div的文本?像 <div (ngModel)="this.bSubject.getValue()">

的功能是从表行

<td> 
(click)="getEnrollmentHistoryById(id)" class="fa fa-2x fa-info"> 
</td> 


<div class="container"> 
     <div class="row"> 
     here are enrollments 
      <div *ngFor="let e of enrollments"> 
       {{e}} 
      </div> 
     </div> 
</div> 

这是为了只读叫,我只需要抓住从DB与观察到的东西,并显示在一个click事件在页面上。

+0

请发布'(click)'事件绑定的html。 – Dhyey

+0

很不清楚,因为我们不知道你想达到什么目的。但如何'

{{ bSubject.getValue() }}
'。甚至不知道为什么使用BeahaviorSubject来存储值,而不是直接将值存储在组件中。 –

+0

@JBNizet我添加了更多的上下文。基本上,我问是否有一种Angular方式来删除我的onEnrollmentHistory函数的需要,我有一个状态变量来填充请求完成后。即使是用额外HTML添加的方式,我仍然没有看到组件HTML更改中的任何内容,即使在控制台中正确设置了正确的数据。 – wootscootinboogie

回答

1

我的解决方案是一个变量添加到组件 enrollmentHistory = new Observable<Enrollment[]>(null); 和click事件做

enrollmentHistory = this.getEnrollmentHistoryById(id) 并在视图 <div *ngFor="let e of enrollmentHistory | async">,这给了我所需要的。