【发布时间】:2014-03-03 22:46:29
【问题描述】:
我是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 并使用返回数据时出现错误,我是否可以将返回数据分配给$scope?
【问题讨论】:
-
你没有注入 $scope
-
呃……你在说什么范围?工厂没有范围——它是一种服务。您应该在 AJAX 调用中编辑 return 承诺,并从您需要的任何有范围的地方调用它。
-
您是在控制器内部使用这个工厂吗?如果是这样,只需将控制器的作用域作为参数传递给
edit,或者接受一个传递data的回调。你不能注入 $scope 因为它不知道要注入什么范围。 -
@BenjaminGruenbaum 我说的是控制器中的 $scope 吗?你能为我提供一个如何处理这种情况的例子吗?非常感谢您的解释。
-
@Dudi 不是好主意 参考正确答案
标签: javascript angularjs