2017-11-10 92 views
0

我對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一起使用?

所有幫助表示讚賞。謝謝!!

+1

我認爲這裏的問題是變化檢測。你有一個數組,其中的大小是變化,但角度不知道。嘗試在添加完所有項目或閱讀變更檢測後重置對數組的引用。 – getbuckts

回答

0

如果您使用異步管道不訂閱,異步管道替換訂閱可觀察

相關問題