cordova.js之前的angular.js在angular.js中导致未处理的exception

我正在使用Visual Studio 2015来创build一个跨平台的平板电脑应用程序。 当angular.js之前有cordova.js的时候,它工作的很好。

<link href="css/bootstrap.css" rel="stylesheet" /> <link href="css/font-awesome.css" rel="stylesheet" /> <!-- Cordova reference, this is added to your app when it's built. --> <script src="cordova.js"></script> <script src="scripts/platformOverrides.js"></script> <!-- AngularJS references --> <script src="scripts/frameworks/angular.js"></script> <script src="scripts/frameworks/angular-route.js"></script> <script src="scripts/script.js"></script> <script src="scripts/controllers.js"></script> 

不过,我需要使用ngCordova添加电子邮件composer php。 根据ngCordova网站,我需要在cordova.js和AngularJS / Ionic文件(因为ngCordova依赖于AngularJS)之前在index.html文件中包含ng-cordova.js或ng-cordova.min.js。 所以我把cordova.js之前的angular.js。

现在,我收到错误消息“未处理的exception,在3400行ms-appx://io.cordova.myapp4934a5/www/scripts/frameworks/angular.js中的第9列”。

我从HTML标签中删除了ng-app,并手动引导了AngularJS,这没有帮助。 这是我在任何其他脚本之前放入头标签的脚本。

 <script type="text/javascript"> var pgapp = { initialize: function () { this.bindEvents(); }, // Bind any events that are required on startup. Common events are: // 'load', 'deviceready', 'offline', and 'online'. bindEvents: function () { if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)) { document.addEventListener('deviceready', this.onDeviceReady, false); } else { this.onDeviceReady(); // Browser! } }, onDeviceReady: function () { if (window.device) { console.log('Running Cordova ' + window.device.cordova); } angular.element(document).ready(function() { angular.bootstrap(document, ['firstApp']); }); } }; </script> 

以下加载在页面的末尾。

 <script type="text/javascript"> pgapp.initialize(); </script> 

我是AngularJS和cordova的新手。 请帮忙。

您应该按以下顺序加载:angular.js,ng-cordova.js,cordova.js。

如果你想,这是一个工作种子: https : //github.com/marioaleogolsat/cordova-angular-angularMaterial-seed

尝试下面的代码,我在你的代码中看到的是,你正在等待文件准备好,你不应该这样做,因为OnDeviceready是cordovaEquivelant,所以只需删除文件准备好的angular度。

 <script type="text/javascript"> var pgapp = { initialize: function () { this.bindEvents(); }, // Bind any events that are required on startup. Common events are: // 'load', 'deviceready', 'offline', and 'online'. bindEvents: function () { if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)) { document.addEventListener('deviceready', this.onDeviceReady, false); } else { this.onDeviceReady(); // Browser! } }, onDeviceReady: function () { if (window.device) { console.log('Running Cordova ' + window.device.cordova); } angular.bootstrap(document, ['firstApp']); } }; </script> 
 <script src="scripts/platformOverrides.js"></script> 

应该去之前

 <script src="scripts/frameworks/angular.js"></script> 

这是正确的顺序。

 <!-- Cordova reference, this is added to your app when it's built. --> <script src="scripts/platformOverrides.js"></script> <!-- AngularJS references --> <script src="scripts/frameworks/angular.js"></script> <script src="scripts/frameworks/angular-route.js"></script> <script src="lib/ngCordova/dist/ng-cordova.js"></script> <script src="cordova.js"></script>