Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法识别我的控制器_Javascript_Angularjs_Ionic - Fatal编程技术网

Javascript 无法识别我的控制器

Javascript 无法识别我的控制器,javascript,angularjs,ionic,Javascript,Angularjs,Ionic,我不明白为什么,但是angular给了我以下的错误,并在网上阅读了更多关于它的信息。我知道其他人在命名控制器或模块时有同样的错误。所以我已经检查了配置、服务和html代码100次,我相信它们看起来都很好 我不明白我错过了什么?或者找什么 非常感谢 错误: ng:areq;错误的论点 参数“LoyaltyController”不正确 说明 AngularJS经常断言,某些值将通过帮助函数呈现并真实存在。如果断言失败,将抛出此错误。要解决此问题,请确保已定义断言所需的值,并且该值是真实的 我的忠诚控

我不明白为什么,但是angular给了我以下的错误,并在网上阅读了更多关于它的信息。我知道其他人在命名控制器或模块时有同样的错误。所以我已经检查了配置、服务和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
,但您在controller方法中提到了它

LoyaltyController.$inject = ['navigationService','loyaltyService', '$scope', 'ionicMaterialInk', 'ionicMaterialMotion'];
    function LoyaltyController(navigationService, loyaltyService, dealService, $scope, ionicMaterialInk, ionicMaterialMotion) {
                                                                      ^    
                                                                      |
                                                                     here
您必须根据您的控制器方法参数进行注入,或者您必须根据您的注入器声明控制器方法参数,无论您选择哪种语言,两者都必须相等,并且符合顺序

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

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


正如Anik指出的,我调用dealService时没有将其注入控制器。另一个问题是超时功能,我必须在文件中添加更多超时功能才能使其正常工作。

尝试删除控制器主体中的一些依赖项和代码。这最终会让您更好地了解缺少的内容。您的
忠诚控制器
参数中没有
dealService
。谢谢Adrina&Jeff