2015-11-10 50 views
0

我正在使用IONIC/AngularJS,并且我有很多JS脚本。如何等待所有js脚本都已加载到IONIC(AngularJS)中?

我已经看到,有时当应用程序正在加载,一些脚本尚未加载,所以未能在应用程序中登录(我首先有一个登录屏幕)。

这是我的所有脚本:

<!-- 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脚本加载完毕?

感谢

回答

1

我认为你正在寻找ionic.Platform.ready()

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

Link to documentation

+0

感谢您的评论,我会测试它。我不知道是否有问题会得到解决。 – MAOL

0

您必须在您的app.js文件下面的代码,

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

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