2015-08-11 4 views
0

У меня есть угловой контроллер ниже. Когда он запускается, я получаю сообщение об ошибке «TypeError: t.getDealers не является функцией». Это вызвано минимизацией javascript. Однако я не знаю, как это исправить.Ошибка минимизации функции углового контроллера

myApp.controller('DLOController', ['$scope', 'DLOFactory', 
    function ($scope, DLOFactory) { 

     $scope.init = function() { 
      $scope.searchType = [{ id: 1, name: "Search by Postcode" }, { id: 2, name: "Search by State" }, { id: 3, name: "Search by Dealer" }]; 
      $scope.selectedSearchType = 1; 
      $scope.selectedState = -1; 
      $scope.postcode = ""; 
      $scope.dealerName = ""; 
      $scope.states = []; 
      $scope.dealers = []; 

      getStates(2); 
      getDealers(2); 

     } 

     function getStates(categoryType) { 
      DLOFactory.getStates(categoryType) 
       .success(function (val) { 
        $scope.states = val; 
       }) 
      .error(function (error) { 
       // REVISIT: LOG ERROR HERE. 
      }); 
     } 

     function getDealers(categoryType) { 
      DLOFactory.getDealers(categoryType) 
       .success(function (val) { 
        $scope.dealers = val; 
        console.log($scope.dealers); 
       }) 
      .error(function (error) { 
       // REVISIT: LOG ERROR HERE. 
      }); 
     } 

    } 
]); 

Вот моя фабрика:

myApp.factory('DLOFactory', ['$http', function ($http) { 

    var stateList = []; 
    var dealerList = []; 

    return { 
     getStates: function (categoryType) { 
      return $http({ 
       method: 'GET', 
       url: '/Addresses/GetStateList', 
       params: { categoryType: categoryType } 
      }) 
      .success(function (responseData) { 
       stateList.push(responseData); 
      }); 
     }, 
     getStateList: function() { 
      return stateList; 
     }, 
     setStateList: function (sl) { 
      stateList = sl; 
     } 
    } 

    return { 
     getDealers: function (categoryType) { 
      return $http({ 
       method: 'GET', 
       url: '/Websites/GetDealers', 
       params: { categoryType: categoryType } 
      }) 
      .success(function (responseData) { 
       dealerList.push(responseData); 
      }); 
     }, 
     getDealerList: function() { 
      return dealerList; 
     }, 
     setDealerList: function (dl) { 
      dealerList = dl; 
     } 

    } 
}]); 

Минимизированный код выглядит следующим образом:

myApp.controller("DLOController",["$scope","DLOFactory",function(n,t){function i(i){t.getStates(i).success(function(t){n.states=t}).error(function(){})}function r(i){t.getDealers(i).success(function(t){n.dealers=t;console.log(n.dealers)}).error(function(){})}n.init=function(){n.searchType=[{id:1,name:"Search by Postcode"},{id:2,name:"Search by State"},{id:3,name:"Search by Dealer"}];n.selectedSearchType=1;n.selectedState=-1;n.postcode="";n.dealerName="";n.states=[];n.dealers=[];i(2);r(2)}}]); 

ответ

0

У вас есть два возвращения на заводе таким образом, второе возвращение не будет выполнять. Так что объедините оба возврата & попробуйте.

+0

Я пробовал это, но получаю ошибки компиляции. Не могли бы вы показать мне, как объединить их обоих, поскольку я новичок в этом. Благодарю. – user1024941

Смежные вопросы