首页 > 解决方案 > 错误 AngularJs:无法读取未定义的属性“then”

问题描述

错误AngularJs:

我不明白为什么我得到

'无法读取属性'then' of undefined' 在这一行:

(function () {
    'use strict';

    angular
        .module('app')
        .controller('pessoaCtrl', ['$scope', 'dataService', function ($scope, dataService) {
            $scope.pessoas = [];
            getData();

            function getData() {
                //error thrown here
                dataService.getPessoas().then(function (response) {
                    $scope.pessoas = response;
                });
            };
        }]);
})();

标签: javascriptangularjs

解决方案


用这个改变你的工厂实现

(function() {
  'use strict';

  angular
    .module('app')
    .factory('dataService', ['$http', '$q', function($http, $q) {
      return {
        getPessoas: getPessoas
      };
      let getPessoas = function() {
        var deferred = $q.defer();
        //return $http.get("/api/EmployeeInfoAPI");
        $http.get('/Pessoas/GetAllPessoas')
        .then(function(result) {
          deferred.resolve(result.data);
        })
        .catch(function(err) {
          deferred.reject(err);
        });
        return deferred.promisse;
      };
    }]);
})();

推荐阅读