变量内部回调函数angularjs

时间:2015-05-20 09:14:11

标签: ajax angularjs callback

我尝试在工厂内使用$ scope存储一个值,但我不能。

我也尝试将值推送到数组中,它不起作用。

我只想将一个回调值复制到一个变量中,以便从工厂返回。

这是一个示例:

var cpy = {};
$http.get('/api/things/')
.success(function (data){
          cpy = data;
         })
        .error(function (err){

        });

console.log(cpy);

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这几乎就是你所需要的。

你的工厂应该是这样的:

var getCopy = function(){
    return $http.get('/api/things/');
}

在您的控制器中,您可以这样:

myfactory.getCopy().success(function(data){
   $scope.myscopedvar = data;
});

如果你想在你的范围内有一些绑定,它总是在控制器中完成。如果是异步调用,则控制器有责任知道$ http承诺解析时要执行的操作。

希望它有所帮助,如果你想要更多解释,请随时提出。

答案 1 :(得分:0)

感谢Maxim,Okazari和user3227295。

我的工厂看起来像这样:

angular.module('feedbackApp').factory('Data', function ($http, $q, Auth) {
    $http.get('/api/things/')
    .success(function (data){
              cpy = data;
             })
            .error(function (err){

            });
                return {first : true}; 
          });

我只想检查cpy是否为空以返回false并为空变量返回true。

很抱歉没有太多准确地问这个问题。

谢谢。