繁体   English   中英

Angular无法识别我的控制器

[英]Angular not recognising my controller

我无法理解为什么,但是angular会给我以下错误,并且在线阅读更多信息,我了解其他人在命名控制器或模块时有某种错字时也会遇到相同的错误。 所以我已经检查了config,service和html代码100次,我相信它们看起来都不错;

我不明白我在想什么? 或寻找什么!

提前谢谢了。

错误:

ng:areq; 错误的论点

参数'LoyaltyController'不是

描述

AngularJS经常断言,使用辅助函数会存在某些值并且是真实的。 如果断言失败,则会引发此错误。 要解决此问题,请确保声明所期望的值已定义且正确。

我的忠诚度控制器

(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);
    };
})();

您忘记了注入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'];

问题是我忘记将控制器和服务附加到我的主要html。

就像Anik指出的那样,我在调用DealService时并未将其注入控制器中。 另一个问题是超时功能,我必须在文件中添加更多内容才能正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM