我有一个简单的组件,它只是呈现一个进度条。当变量发生变化时,Angular2组件视图不会更新
它初始化很好,进度传递给它很好,但模板没有用新值更新。
import {Component} from 'angular2/core';
@Component({
selector : 'progress-bar',
template : `
<div class="progress-container">
<div>{{currentProgress}}</div>
<div [style.width.%]="currentProgress" class="progress"></div>
</div>
`,
styles: [
'.progress-container {width: 100%; height: 5px}',
'.progress {background-color: #8BC34A; height:5px}'
]
})
export class ProgressBar {
currentProgress: number;
constructor() {
this.currentProgress = 0;
}
onProgress(progress: number) {
console.log(progress) //consoles correct percentages
this.currentProgress = progress;
}
reset() {
console.log(this.currentProgress) //is 100
this.currentProgress = 0;
}
}
~
别处
ngOnInit() {
this.httpFileService.progress$.subscribe((progress: number) => this.onProgress(progress));
}
onProgress(progress: number) {
this.progressBar.onProgress(progress*100);
}
我觉得我失去了一些东西非常的补救。
如果您将更新您的问题以向我展示'onProgress'是如何被调用的,我可能会让我的答案对您更有帮助 - 我怀疑这里有更深的反模式。 – drewmoore
添加了onProgress部件。它通过我订阅的xhr onprogress检索。 – Dreamlines
我是对的:-)只需一秒钟,我就会更新 – drewmoore