如何等待所有js脚本都加载到IONIC(AngularJS)中

How to wait until all js scripts have been loaded in IONIC(AngularJS)?

本文关键字:加载 IONIC AngularJS 脚本 何等待 等待 js      更新时间:2023-09-26

我使用IONIC/AngularJS,我有很多JS脚本。

我看到有时在加载应用程序时,有些脚本还没有加载,所以无法登录到应用程序中(起初我有一个登录屏幕)。

这是我所有的脚本:

<!-- ionic/angularjs js -->
    <script src=" lib/Pouchdb/pouchdb-4.0.1.min.js"></script>
    <script src="lib/ionic/js/ionic.bundle.js"></script>
    <script src="cordova.js"></script>
    <script type="text/javascript" src="js/ng-cordova.js"></script>
    <!-- cordova script (this will be a 404 during development) -->
    <script type="text/javascript" src="lib/a0-angular-storage/dist/angular-storage.min.js"></script>
    <script type="text/javascript" src="lib/ion-affix/ion-affix.js"></script>
    <script type="text/javascript" src="lib/angular-qr/angular-qrcode.js"></script>
    <script type="text/javascript" src="lib/angular-qr/qrcodejavascript.js"></script>
    <script type="text/javascript" src="js/angular-jwt.js"></script>
    <script type="text/javascript" src="js/date.js"></script>
    <script type="text/javascript" src="js/angular-locale_es-es.js"></script>
    <script type="text/javascript" src="lib/angular-elastic/elastic.js"></script>
    <script type="text/javascript" src="lib/angular-filter/dist/angular-filter.min.js"></script>
    <script type="text/javascript" src="js/underscore.js"></script>
    <script type="text/javascript" src="js/qrcode_V2.js"></script>
    <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src="js/factoryutils.js"></script>
    <script type="text/javascript" src="js/Toast.js"></script>
    <script type="text/javascript" src="js/jquery.urlshortener.min.js"></script>
    <script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>
        <script type="text/javascript" src="js/sweetalert.min.js"></script>
    <script src="lib/ionic-material/ionic.material.min.js"></script>
        <script type="text/javascript" src="js/ngprogress.js"></script>
    <!-- your app's js -->
    <script src="js/app.js"></script>
    <script src="js/MenuCtrl.js"></script>
    <script src="js/HomeTabCtrl.js"></script>
    <script src="js/LoginCtrl.js"></script>
    <script src="js/TabEventosCtrl.js"></script>
    <script src="js/DatabaseCtrl.js"></script>
    <script src="js/HandleTokenValidity.js"></script>

我的错误是下一个:

"TypeError: Cannot read property 'getPreferredLanguage' of undefined
  at Object.getPreferredLanguage (file:///android_asset/www/js/ng-cordova.js:2826:32)
  at file:///android_asset/www/js/LoginCtrl.js:76:39
  at processQueue (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:23394:28)
  at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:23410:27
  at Scope.$eval (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:24673:28)
  at Scope.$digest (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:24484:31)
  at Scope.$apply (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:24778:24)
  at done (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:19191:47)
  at completeRequest (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:19363:7)
  at XMLHttpRequest.requestLoaded (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:19304:9)", 
    source: file:///android_asset/www/lib/ionic/js/ionic.bundle.js (21157)

当尝试访问$cordovaGlobalization作用域时,问题就开始了,但我认为当时没有加载关联的库。

我的问题是,是否有任何方法可以让应用程序等待所有JS脚本加载完成

感谢

我想您正在寻找ionic.Platform.ready()

ionic.Platform.ready(function(){
  // will execute when device is ready, or immediately if the device is already ready.
});

文档链接

您必须在app.js文件中包含以下代码

.run(function($ionicPlatform){
  $ionicPlatform.ready(function() {
    // The $ionicPlatform.ready event is called when Cordova's deviceready event fires
  });
});

当你的所有js文件都被加载时,它会执行。。。