我正在尝试使用$ http .i调用从文件获取数据。使工厂生成并在控制器中获得结果。我想声明成功和错误方法。但是我收到此错误 accountDetailService.callAccountDetailService.then不是函数 这是我的代码
http://plnkr.co/edit/eGaPwUdPgknwDnozMJWU?p=preview
angular.module('ionicApp', ['ionic'])
.controller('showhidecntr', function($scope, $window,accountDetailService) {
$scope.hgt = $window.innerHeight / 3;
//alert($scope.hgt)
accountDetailService.callAccountDetailService.then(function(data){
console.log(data);
}).error(function(data){
console.log("error"+data);
})
}).factory('accountDetailService',['$http','$q', function($http, $q) {
return {
callAccountDetailService: function(callback){
$http.get('default.json').success(callback).error(callback);
}
};
}])
答案 0 :(得分:1)
只有在返回回调对象时,promise才有效。 有2种方法可以解决这个问题。
1-将您的工厂代码更改为此代码:
return $http.get('default.json').success(callback).error(callback);
2-您可以使用成功而不是然后从工厂中删除成功和错误回调。
如果由我决定,我会一直选择选项1,因为它更清晰易懂。
祝你好运,玩得开心。