2014-06-16 94 views
0

對於RSS應用程序,我想從Firebase讀取JSON對象(每個代表單個Feed的參數)的數組。從Firebase讀取數據並將其添加到範圍

沒有火力地堡,應用程序的工作的基礎上,申報

$scope.rssSourcesTest = [ 
    {'aid': 'urlaub99euro', 'atitle': 'Urlaub99Euro', 'aurl': 'http://www.urlaub99euro.de/rss3b/', 'atags': 'deutschland'}, 
    {'aid': 'urlaub_fm', 'atitle': 'urlaub.fm', 'aurl': 'http://urlaub.fm/rss/', 'atags': ''} 
    ]; 

寫作$ scope.rssSourcesTest到火力地堡的作品。讀回數組也可以,但是我不能將結果數組rssSources2分配給作用域變量,例如$ scope.rssSources2。

我在這裏閱讀了很多關於此的文章,解決方案可能會涉及$ timeout或$ apply()。這是測試。

 // Test Read rssSources from Firebase ************************ 

    // Test Array 
    $scope.rssSourcesTest = [ 
    {'aid': 'urlaub99euro', 'atitle': 'Urlaub99Euro', 'aurl': 'http://www.urlaub99euro.de/rss3b/', 'atags': 'deutschland'}, 
    {'aid': 'urlaub_fm', 'atitle': 'urlaub.fm', 'aurl': 'http://urlaub.fm/rss/', 'atags': ''} 
    ]; 
    // console.log($scope.rssSourcesTest[0].aid); 
    // works! 

    // write 
    var sourcesFB = new Firebase("https://xxxxxxxx.com/sourcestest"); 
    sourcesFB.set($scope.rssSources); 
    // works 

    // read 
    var rssSourcesRef = new Firebase("https://xxxxxxxx.com/sourcestest/"); 
    rssSourcesRef.on('value', function(snap) { 
      rssSources2 = snap.val(); 
      console.log("read from FB data ..: " + rssSources2[0].aid); 
      // works 
    }); 
    console.log($scope.rssSources2[0].aid); 
    // is $scope.rssSources2 is undefined 

    // /Test Read rssSources from Firebase ************************ 

回答

1

$ scope.rssSources2和rssSources2是兩個不同的變量。替換:

rssSources2 = snap.val(); 

有:

$scope.rssSources2 = snap.val(); 
+1

部分正確。仍然需要使用$ timeout或$ scope。$ digest()來調用髒檢查和編譯器,否則直到下一個摘要事件纔會顯示更改。 – Kato

+0

非常感謝答覆(雖然這很清楚)和評論。 $ timeout由於某種原因不起作用,它在console.log中拋出了未定義的錯誤。 插入$ scope。$ digest();線解決了整個問題 - 感謝加藤。 \t \t var rssSourcesRef = new Firebase(「https://xxxxxx.com/sources/」); \t \t rssSourcesRef.on( '值',函數(快照){ \t \t \t // $超時(函數(){ \t \t \t \t $ scope.rssSources = snapshot.val(); \t \t \t/。/}) \t \t \t \t $ $範圍消化(); \t \t \t \t的console.log( 「從FB數據讀取..:」 + $ scope.rssSources [1] .aid); \t \t \t \t //作品 \t \t}); –

相關問題