2015-04-08 64 views
0

我試圖讓$firebaseArray但不是我期待的數組,我得到的length 0陣列/對象的對象包含這樣的屬性$$added$error$getKey,等等,但沒有我期望的數據。

最奇怪的部分是,這個完全相同的代碼在運行相同代碼的不同計算機上正常工作。

這裏是我的代碼(省略不相關部分):

angular.module('myApp.services').factory('Props', ['$rootScope', '$firebaseArray', 'Refs', function($rootScope, $firebaseArray, Refs) { 
    var service = { 
    // initialized below 
    user: null, 

    init: function(user) { 
     this.user = user; 
     if (user) { 
     this.user.feed = $firebaseArray(Refs.feed(user.email)); 
     $firebaseArray(Refs.props).$loaded(function(props) { 
      this.user.props = props; 
      console.log(props); 
     }); 
     } 
    } 
    } 
}]); 

當我做了一個ng-repeatthis.user.props,它是空白(但只有我的電腦上)。當我做console.log(props)時,它的length爲0(但只在我的電腦上)。

什麼可能導致此行爲?

回答

0

我對你錯誤的假設是以下行:

this.user.props = props; 

我是否可以發生這種情況,因爲你是包括this不,現在你是一個回調函數內意味着同樣的事情。

你可能想在這裏改變一些東西。你可能不想打電話給你的函數參數user,而是其他的東西,否則可能會引起很多混淆。

讓我知道如果是這樣工作的:

angular.module('myApp.services').factory('Props', ['$rootScope', '$firebaseArray', 'Refs', function($rootScope, $firebaseArray, Refs) { 
    var service = { 
     // initialized below 
     user: null, 

     init: function(u) { 
      this.user = u; 
      if(this.user) { 
       this.user.feed = $firebaseArray(Refs.feed(this.user.email)); 
       $firebaseArray(Refs.props).$loaded(function(props) { 
        user.props = props; 
        console.log(props); 
       }); 
      } 
     } 
    } 
}]); 

問候,