2015-12-02 97 views
0

我不明白爲什麼,但角度給我下面的錯誤和在線閱讀更多關於它我知道別人有同樣的錯誤,當他們有一些命名控制器或模塊的錯字。所以我檢查了配置,服務和HTML代碼100次,我相信它們都很好看;角度不識別我的控制器

我不明白我錯過了什麼?或尋找什麼!

很多預先感謝。

錯誤:

NG:AREQ;壞參數

參數「LoyaltyController」不是

說明

AngularJS往往斷言某值將使用輔助功能存在並且truthy。如果斷言失敗,則拋出此錯誤。爲了解決這個問題,確保斷言期望的值被定義和真實。

我的忠誠控制器

(function() { 
    'use strict'; 

    angular 
     .module('app') 
     .controller('LoyaltyController', LoyaltyController); 

    LoyaltyController.$inject = ['navigationService','loyaltyService', '$scope', 'ionicMaterialInk', 'ionicMaterialMotion']; 
    function LoyaltyController(navigationService, loyaltyService, dealService, $scope, ionicMaterialInk, ionicMaterialMotion) { 
     // Set Header 
     $scope.$parent.$parent.$parent.showHeader(); 
     $scope.$parent.$parent.$parent.clearFabs(); 
     $scope.$parent.$parent.$parent.setExpanded(false); 
     $scope.$parent.$parent.$parent.setHeaderFab(false); 

     var vm = this; 
     vm.loyalty = []; 

     loyaltyService.getUserLoyalty() 
      .success(function (data, status, headers, config) { 
       vm.loyalty = data; 
     }); 

     vm.menuItems = []; 

     navigationService.getAllNavigations() 
      .success(function (data, status, headers, config) { 
       vm.menuItems = data; 

       $timeout(function() { 
        // Set Motion 
        ionicMaterialMotion.fadeSlideInRight(); 

        // Set Ink 
        ionicMaterialInk.displayEffect(); 
       }, 100); 
      }); 

     // Delay expansion 

     $timeout(function() { 

      ionicMaterialMotion.slideUp({ 
       selector: '.slide-up' 
      }); 
     }, 300); 
    }; 
})(); 
+0

嘗試刪除控制器正文中的一些依賴項和代碼。這最終會讓你更好地指出缺少的東西。 –

+1

您的'LoyaltyController'參數中沒有包含'dealService'。 –

+0

感謝Adrina&Jeff – Ash

回答

0

你忘記注入dealService但你在控制器方法提到。

LoyaltyController.$inject = ['navigationService','loyaltyService', '$scope', 'ionicMaterialInk', 'ionicMaterialMotion']; 
    function LoyaltyController(navigationService, loyaltyService, dealService, $scope, ionicMaterialInk, ionicMaterialMotion) { 
                    ^ 
                     | 
                    here 

你必須根據你的控制器方法參數注入,或者您必須聲明控制器的方法參數根據您的注射器Whetever您選擇的語言都必​​須相等,並根據秩序。

LoyaltyController.$inject = ['navigationService','loyaltyService','dealService','$scope', 'ionicMaterialInk', 'ionicMaterialMotion']; 
+0

感謝Anik你的指針幫助我實現了我的瘋狂錯誤 – Ash

+0

@ArashKiani如果它可以幫助你,請將它標記爲接受:) –

0

問題是我忘了將控制器和服務附加到我的主html中。

也Anik指出,我打電話給dealService而不注入到我的控制器。另一個問題是超時功能,我不得不在文件中更多地使它工作。