Angular使用函数范围外的读取数据?

时间:2014-08-28 11:36:37

标签: javascript angularjs

我通过$ http.get返回一个JSON对象。我能够获得结果集,并且它是一个数组,但是当我尝试访问fetch()之外的对象时,我得到了未定义。不知道我错过了什么,为了做到这一点,任何帮助都表示赞赏。

谢谢吉米。

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

       console.log($scope.myData) 

1 个答案:

答案 0 :(得分:2)

您的 $ scope.myData 未定义,直到 fetch()完成执行并调用传递的回调函数。

在您的示例中,在完成myObject.fetch()之前调用 console.log()

在下面的示例中,它很可能会起作用(不要这样做!)

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

我不是告诉你这样做,实际上这是一种非常糟糕的方式。最佳实践是仅在回调函数中使用该范围变量,因为它实际设置的位置。