2017-07-06 64 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">,這給了我所需要的。