몇 초마다 REST API를 호출하고 일부 JSON 데이터를 다시받는 간단한 구성 요소가 있습니다. 내 로그 문과 네트워크 트래픽에서 반환되는 JSON 데이터가 변경되고 내 모델이 업데이트되고 있지만보기는 변경되지 않습니다.
내 구성 요소는 다음과 같습니다.
import {Component, OnInit} from 'angular2/core';
import {RecentDetectionService} from '../services/recentdetection.service';
import {RecentDetection} from '../model/recentdetection';
import {Observable} from 'rxjs/Rx';
@Component({
selector: 'recent-detections',
templateUrl: '/app/components/recentdetection.template.html',
providers: [RecentDetectionService]
})
export class RecentDetectionComponent implements OnInit {
recentDetections: Array<RecentDetection>;
constructor(private recentDetectionService: RecentDetectionService) {
this.recentDetections = new Array<RecentDetection>();
}
getRecentDetections(): void {
this.recentDetectionService.getJsonFromApi()
.subscribe(recent => { this.recentDetections = recent;
console.log(this.recentDetections[0].macAddress) });
}
ngOnInit() {
this.getRecentDetections();
let timer = Observable.timer(2000, 5000);
timer.subscribe(() => this.getRecentDetections());
}
}
그리고 내 견해는 다음과 같습니다.
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading"><h3>Recently detected</h3></div>
<div class="panel-body">
<p>Recently detected devices</p>
</div>
<!-- Table -->
<table class="table" style="table-layout: fixed; word-wrap: break-word;">
<thead>
<tr>
<th>Id</th>
<th>Vendor</th>
<th>Time</th>
<th>Mac</th>
</tr>
</thead>
<tbody >
<tr *ngFor="#detected of recentDetections">
<td>{{detected.broadcastId}}</td>
<td>{{detected.vendor}}</td>
<td>{{detected.timeStamp | date:'yyyy-MM-dd HH:mm:ss'}}</td>
<td>{{detected.macAddress}}</td>
</tr>
</tbody>
</table>
</div>
console.log(this.recentDetections[0].macAddress)
recentDetections 객체가 업데이트되는 결과를 볼 수 있지만 페이지를 다시로드하지 않으면 뷰의 테이블이 변경되지 않습니다.
나는 내가 여기서 뭘 잘못하고 있는지보기 위해 고군분투하고있다. 누구든지 도울 수 있습니까?