得到错误"然后不是一个功能"在角js

时间:2015-05-31 04:45:48

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我正在尝试使用$ 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);
            }
        };

    }])

1 个答案:

答案 0 :(得分:1)

只有在返回回调对象时,promise才有效。 有2种方法可以解决这个问题。

1-将您的工厂代码更改为此代码:

            return $http.get('default.json').success(callback).error(callback);

2-您可以使用成功而不是然后从工厂中删除成功和错误回调。

如果由我决定,我会一直选择选项1,因为它更清晰易懂。

祝你好运,玩得开心。