簡體   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