2014-08-28 100 views
0

我通過$ http.get返回一個JSON對象。我能夠得到結果集,它是一個數組,但是當我嘗試訪問fetch()之外的對象時,我得到的是未定義的。不知道我錯過了什麼,爲了做到這一點,任何幫助表示讚賞。在函數範圍外使用提取數據的角度?

謝謝吉米。

 myObject.fetch().then(function(myData) { 
      $scope.myData = myData; 
     }); 

     console.log($scope.myData) 
+0

這是你的代碼實際上看起來如何?在這種情況下,'console.log'將在回調函數實際運行之前運行並設置'$ scope.myData' – 2014-08-28 11:40:52

+1

將'console.log(1)'放入回調函數中,類似的編號爲2 「外面。運行並查看結果。思考? – zerkms 2014-08-28 11:41:41

+0

那麼我需要setTimeout? – Jimi 2014-08-28 11:42:15

回答

2

$ scope.myData是不確定的,直到取()執行完畢,並調用傳遞的回調函數。

在你的榜樣

的console.log()被稱爲myObject.fetch()

在下面的例子完成之前,將最有可能的工作(不這樣做!)

setTimeout(function(){ 
console.log($scope.myData) 
}, 2000); 

我不會告訴你這樣做,實際上它是一種非常糟糕的方式。最佳做法是僅在回調函數中使用該範圍變量,因爲在實際設置的位置。