javascript – 访问$scope在AngularJS工厂?

我是新的AngularJS,发现它很有趣,但我有点不清楚以下情况。

app.factory('deleteFac', function($http){

var factory = {}; 

factory.edit = function(id){
  $http.get('?controller=store&action=getDetail&id=' + id).
    success(function(data, status){
        /** 
        got an error on the following 
        when i use return data; and i get data undefined 
        in the controller which i get it because its doing a ajax call
        you don't get data until the call first.
        **/
        $scope.detail = data;
      })
    }

return factory;
})

我得到错误,当我分配到$范围和使用返回数据,有没有反正我可以分配返回数据到$范围?

最佳答案
您通常不在工厂,服务或提供程序中使用$ scope。通常,你会返回promise(由$ http返回),然后在一个控制器(你有$ scope)处理promise。

factory.edit = function(id){
    return $http.get('?controller=store&action=getDetail&id=' + id);
}

控制器功能:

$scope.edit = function(id) {

    deleteFac.edit(id).then(function(response) {
        $scope.something = response.model;
    });
}

转载注明原文:javascript – 访问$scope在AngularJS工厂? - 代码日志