我的应用中有2个组件。
第一个和第二个组件都注入app.component。 在第一个组件中,我有一个下拉列表,当选择该选项时,必须更新第二个组件中的数据。 为此,我正在使用服务。
因此,当第一个compoenent的select的更改事件被触发时,我在服务中使数组为空并加载新数据
public setDataByCategory() {
console.log("CURRENT ROUTE=====" + this.route.url);
var isBookmarked = false;
if (this.route.url == '/test') {
isBookmarked = false;
}
else {
isBookmarked = true;
}
this.dataArray.length = 0;//=> EMPTY THE ARRAY
this.getCompanyData('', isBookmarked, true).then(data => {
this.setData(data);
});
}
public setData(data: any) {
var datas= data.datas;
for (let i in datas) {
var current = this.formatdata(datas[i]);
this.dataArray.push(current );
}
}
当我通过使用清空dataArray时 this.dataArray.length = 0; 视图得到更新。 但是当我使用 this.setData(data); 插入新值时,视图不会改变。我不明白为什么会出现这种行为。 我们可以使用observable来实现这种改变,但为什么删除有效,但添加数据并不是。
我需要对此有所了解。