【发布时间】:2016-05-04 09:50:37
【问题描述】:
我为 $http 服务创建了一个角度工厂。我得到了响应并且能够在控制器中使用它,但问题是,当我在浏览器中检查网络选项卡时,http 请求被发出了两次
工厂:
app.factory('myService', function ($http, $q) {
var deferred = $q.defer();
var responseData = null;
var obj = {};
obj.getData = function(){
$http.get('test.json').success(function(response){
responseData = response;
deferred.resolve(responseData);
}).error(function(response){
deferred.reject(responseData);
});
return deferred.promise;
}
obj.myData = function(){
return responseData;
}
return obj;
});
控制器:
app.controller('myController', function($scope,myService){
myService.getData().then(function(){
$scope.myDetails = myService.myData();
});
});
我的方法有什么问题。请给我一个解决方案
【问题讨论】:
-
虽然我不会那样做,但那里一切都很好。你确定你没有在你的应用程序中绑定两次“myController”吗?
标签: javascript angularjs angular-services