2015-12-02 95 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而不注入到我的控制器。另一个问题是超时功能,我不得不在文件中更多地使它工作。