Javascript 应用程序在android版本4.4.2上运行时中断,抛出错误:[ng:areq]

Javascript 应用程序在android版本4.4.2上运行时中断,抛出错误:[ng:areq],javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,当我使用ionic run时,我的应用程序会在启动时路由到discover.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的版本中。当我在更

当我使用ionic run时,我的应用程序会在启动时路由到discover.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的版本中。当我在更高版本中运行应用程序时,它运行平稳,不会抛出错误。我不知道这是离子问题还是在构建应用程序时。我尝试过在config.xml中减少minSdk,但也没有用。也许我犯了一个新手错误。提前谢谢你的帮助

discover.controller.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(){};


    }

    })();
    (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(){};
   }
})();
angular.module('exy', [
'app.core', // contains external services
'app.discover',

'app.answered'
])
answered.controller.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(){};


    }

    })();
    (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(){};
   }
})();
angular.module('exy', [
'app.core', // contains external services
'app.discover',

'app.answered'
])
app.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(){};


    }

    })();
    (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(){};
   }
})();
angular.module('exy', [
'app.core', // contains external services
'app.discover',

'app.answered'
])

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

  • 您正在访问模块
    应用程序。无需先定义即可发现
    。确保该模块是在此控制器定义之前使用以下语法定义的:
    angular.module('app.discover',[])
    syntax

  • 您的依赖项不正确,导致控制器定义不正确

  • 如果未在
    ng app
    指令中指定应用程序名称,也可能出现这种情况


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

    好的,我解决了问题,在我的一个函数中,我在for循环中使用了'let',因此旧版webview不支持let,将其删除并修复

    模块定义与您指定的相同,