在角度回调中将对象追加到数组的正确方法
问题描述:
我对canvas应用程序使用了fabricJS和angular2。我正在将一个SVG对象加载到画布上,我想返回SVG中的所有对象。在角度回调中将对象追加到数组的正确方法
在此回调中,返回一个对象并将其推送到数组上。在函数调用SVG中的所有元素之后,我以包含构成我的SVG的10个对象的数组结束。所有这一切都很好。
我打算做的是使用ngFor来显示表格中的所有对象的属性组织。
private allLayersArray: any = [];
}, function (item, object) {
object.set('id', item.getAttribute('id'));
group.push(object); //local array in parent function
if(this.selectedJersycut)
this.bindCanvas();
this.allLayersArray = group; //set all layers variable to group
console.log(this.allLayersArray);
//prints correctly after 10 loops, but values dont update in view
});
在这一点上,group
有10个对象,我想它分配给私有组件变量allLayers
视图来填充。但是,当我console.log(allLayersArray)
时,正确的阵列对象正在打印到控制台。
查看代码:
<tr *ngFor="let layer of allLayersArray | async">
<td>
{{layer}}
{{layer.id}}
</td>
<td>
Jersey Body
</td>
<td>
<input type="radio" value="Yes"/>
<input type="radio" value="No"/>
</td>
</tr>
我可以用一个可观察在这种情况下?虽然我在视图中使用异步管道,但数据仍未填充。我错过了什么吗?订阅方法是否与Observable一起使用?
所有帮助表示赞赏。谢谢!!
答
如果您使用异步管道不订阅,异步管道替换订阅可观察
我认为这里的问题是变化检测。你有一个数组,其中的大小是变化,但角度不知道。尝试在添加完所有项目或阅读变更检测后重置对数组的引用。 – getbuckts