2017-03-15 36 views
0

我試圖將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), 
    ); 

什麼我做錯了任何想法?

感謝您對此提出的任何建議!

+0

看起來像這個其他問題可能涉及:[see here](http://stackoverflow.com/questions/38660832/console-log-of-element-children-shows-0-length-but-has-ree -entries-時展開) –

回答

相關問題