2015-12-02 4 views
0

Я не могу понять, почему, но угловой дает мне следующую ошибку и читает об этом в Интернете. Я понимаю, что у других такая же ошибка, когда у них есть какая-то опечатка для обозначения контроллера или модулей. Таким образом, я проверял конфигурационный, сервисный и html-код 100 раз, и я считаю, что все они выглядят хорошо;Угловой не распознающий мой контроллер

Я не могу понять, что мне не хватает? или что искать!

Большое спасибо в Advance.

Ошибка:

нг: areq; Bad Довод

Аргумент «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

У вас нет 'dealService', включенного в ваши параметры' LoyaltyController'. –

+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

Спасибо Аник, ваш указатель помог мне понять мою сумасшедшую ошибку – Ash

+0

@ArashKiani, если это поможет вам, пожалуйста, пометить ее принятой :) –

0

Проблема заключалась в том, что я забыл прикрепить контроллер и обслуживание к своему основному html.

также как Аник указал, что я звонил в dealService, не вводя его в контроллер. другой проблемой была функция тайм-аута, мне пришлось в ней больше работать, чтобы она работала.