我正在尝试学习promise的概念并实现角度。这是我在stackblit中的代码。我想要实现的是,我想在使用angular中的promise分配有任何值的数组时显示该数组。
我的HTML代码是:
<h2>Array values</h2>
<p *ngIf="show">
<span *ngFor="let values of filter">
{{values}}
</span>
</p>
我的TS文件是:
filter = [];
show = false;
ngOnInit() {
this.showArray();
}
showArray() {
var a = new Promise(resolve=>{
setTimeout(() => {
this.filter = [3, 4, 4]
resolve('resolved');
}, 0);
});
a.then(function() {
this.show= true;
})
}
每当为数组分配任何值(可能来自远程API)时,我都希望将变量 show 设置为true。我没有得到结果。我已经浏览了许多与Promise相关的示例,但找不到这种方式的Promise实用示例。
答案 0 :(得分:1)
将代码替换为-
a.then(() => {
this.show= true;
})
您需要使用箭头功能代替现有的功能。
如果您正在使用这段代码-
a.then(function() {
this.show= true;
})
这不会绑定到类级别的show
变量,但是模板绑定是通过类级别的变量完成的,这就是现有代码无法正常工作的原因。