在安卓版本 4.4.2 上运行时应用中断,抛出错误:[ng:areq]

app breaks when run on android version 4.4.2, throws Error: [ng:areq]

本文关键字:出错 错误 ng areq 安卓版本 运行时 中断 应用      更新时间:2023-09-26

当我使用离子运行时,我的应用程序路由到发现.html启动时调用DiscoverCtrl,引发错误:

Error: [ng:areq] http://errors.angularjs.org/1.4.3/ng/areq?p0=DiscoverCtrl&p1=not%20a%20function%2C%20got%20undefined

但是当我路由到 AnsweredCtrl 时,它会正确加载并且那里没有问题。此外,这仅在低于 api 级别 22 的版本中发生.当我在更高版本中运行应用程序时,它运行流畅并且没有抛出错误。我无法确定这是离子问题还是在构建应用程序时.我尝试在配置中减少 minSdk.xml但这也没有帮助。也许我犯了一个菜鸟错误。提前感谢您的帮助

发现控制器.js

 (function () {
    'use strict';
    angular
        .module('app.discover')
        .controller('DiscoverCtrl', DiscoverCtrl);
    DiscoverCtrl.$inject = ['$scope', 'ConnectivityMonitor', 'serverPath', '$stateParams', 'EndUser', '$timeout', '$compile', 'localStorageService', '$ionicHistory', 'cdnPath'];
    function DiscoverCtrl($scope,ConnectivityMonitor,serverPath,$stateParams,EndUser,$timeout,$compile,localStorageService,$ionicHistory,cdnPath) {
        var vm = this;
        ConnectivityMonitor.startWatching();
        $scope.somefunction = function(){};

    }
    })();

回答.js

    (function () {
    'use strict';
    angular
        .module('app.answered')
        .controller('AnsweredCtrl', AnsweredCtrl);
    AnsweredCtrl.$inject = ['ConnectivityMonitor','serverPath','$scope','QuestionService','$timeout','$compile', 'localStorageService', 'cdnPath', 'QuestionListService'];
    function AnsweredCtrl (ConnectivityMonitor,serverPath, $scope, QuestionService, $timeout, $compile, localStorageService, cdnPath, QuestionListService) {
       var vm = this;
       $scope.somefunction = function(){};
   }
})();

应用.js

angular.module('exy', [
'app.core', // contains external services
'app.discover',
'app.answered'
])

好的,我想出了问题所在,在我的一个函数中,我在我的for循环中使用了'let',所以旧的webview不支持let,删除了它并得到了修复。

引发此错误是因为DiscoverCtrl的定义不正确。这可能是由以下任何原因引起的:

  1. 您正在访问模块app.discover,而无需先定义它。确保在此控制器定义之前使用以下方法定义模块: angular.module('app.discover', [])语法

  2. 依赖项不正确,导致控制器定义不正确。

  3. 如果未在指令中指定应用名称ng-app也可能

  4. 这样做

可能的原因应该是第一个。确保 1.)您正确定义了模块,并且 2.)没有定义两次

相关文章: