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}); –