我試圖將FirebaseObjectObservable的值附加到Angular 2組件的d3 svg節點。它的工作原理格式使用局部變量:將AngularFire2 FirebaseObjectObservable值獲取到適當的類型
myLocalVar = [{"Id":"Value"}, {"Id":"Value"}];
當我登錄myLocalVar到控制檯,我看到:
[Object, Object...]
當我點擊展開按鈕,它會顯示這樣的:
ConsoleLog myLocalVar Expanded
當我訂閱FirebaseObjectObservable並嘗試綁定數據時,數據將不會綁定。當我查看控制檯時,我看到一組對象,但頂層窗體看起來不同。控制檯最初顯示只有一套陣列括號:
[]
展開陣列的視圖中的控制檯顯示這一點:
ConsoleLog Observable Expanded 1
既myLocalVar和FirebaseObjectObservable內的對象是相同的。
我猜測這兩種類型的數組之間存在一些差異,因爲它們在頂層的控制檯中的表現方式各不相同。我很好奇爲什麼可觀察數組儘管它有對象,但它爲數組[0]。如果數組的數組看起來像是具有相同對象組成的相同數量的對象,那麼這些數組又有什麼不同呢?
任何想法如何我可以從observable返回數組來鏡像局部變量的形式?
在它需要的情況下,這是我的定義和訂閱可觀察代碼:
this.objData$ = af.database.object('/data');
this.objData$.flatMap(result => result)
.subscribe(
result => this.componentVar.push(result), //the componentVar is type 'any'; I've also tried type '[]'
error => console.log(error),
);
什麼我做錯了任何想法?
感謝您對此提出的任何建議!
看起來像這個其他問題可能涉及:[see here](http://stackoverflow.com/questions/38660832/console-log-of-element-children-shows-0-length-but-has-ree -entries-時展開) –