我正在使用Angular.js和Firebase API從this tutorial開始執行步驟。無法從指令angularjs中的Firebase中獲取數據
我已經在我的指導文件中創建一個指令「滑」,這裏是代碼:
.directive('slider', function()
{
return {
restrict: 'E',
replace: true,
link: function(scope, elem, attrs) {
scope.currentIndex = 0; // Initially the index is at the first slide
scope.next = function()
{
scope.currentIndex < scope.challenges.length - 1 ? scope.currentIndex++ : scope.currentIndex = 0;
};
scope.prev = function()
{
scope.currentIndex > 0 ? scope.currentIndex-- : scope.currentIndex = scope.challenges.length - 1;
};
scope.$watch('currentIndex', function()
{
scope.challenges.forEach(function(challenge)
{
challenge.visible = false; // make every challenge invisible
});
scope.challenges[scope.currentIndex].visible = true; // make the current challenge visible
});
},
template: '<div></div>'
};
我沒有分離範圍,因爲你看到的,所以它應該從父scope.challenges,但它來自未定義的值,而不是來自Firebase的數據。
這樣做的foreach不確定它拋出一個錯誤: 類型錯誤:無法讀取屬性未定義
「的forEach」我花了像3小時試圖理解範圍,解決方案會如此回報。 非常感謝。
你可以分享創建挑戰的代碼嗎?你提到了firebase,所以我想有一些異步操作發生? – Kato 2014-09-24 20:45:54
Alternative angular.forEach(scope.challenges,function(challenge){challenge.visible = false}); – DeadCalimero 2014-09-24 21:03:55
@Kato in controller我有'$ scope.findAll = function(){$ scope.challenges = Challenge.findAll(); };'它只取得Firebase的所有結果。 – 2014-09-24 21:12:25