对于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编写到Firebase中。读回数组也有效,但我无法将结果数组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 ************************
答案 0 :(得分:1)
$ scope.rssSources2和rssSources2是两个不同的变量。替换:
rssSources2 = snap.val();
使用:
$scope.rssSources2 = snap.val();