2014-06-16 172 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}); –

相关问题