在角度回调中将对象追加到数组的正确方法

时间:2017-11-10 23:21:37

标签: javascript arrays angular svg

我正在使用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吗?虽然我在视图中使用异步管道,但数据仍未填充。我错过了什么吗?订阅方法是否与Observable一起使用?

感谢所有帮助。谢谢!!

1 个答案:

答案 0 :(得分:0)

如果您使用的是异步管道,请不要订阅,异步管道替换可观察的订阅