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 ************************
部分正确。仍然需要使用$ timeout或$ scope。$ digest()来调用脏检查和编译器,否则直到下一个摘要事件才会显示更改。 – Kato
非常感谢答复(虽然这很清楚)和评论。 $ 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}); –