この質問が古いことは知っていますが、受け入れられた回答も明確な回答もないため、これも解決しようとしています。
アプリごとに解決状態がないことがしばらくの間私を悩ませていましたが、これが最終的に思いついた解決策です: http://jsfiddle.net/gabrielcatalin/cvyq0oys/
要するに、私は Angular Module Enhancer(decorator) を作成しました。これは、resolve()とready()という 2 つのメソッドをサポートしています。AngularEnhancer スニペットは、次のように、angular.js がロードされた後、実装の前にロードする必要があります。
<script type="text/javascript" src="angular.js">
<script type="text/javascript" src="angularEnhancer.js">
<script type="text/javascript" src="main.js">
実装は次のようになります。
angular.module('myApp', [])
.ready(function() {
alert('The app is ready to be used!');
})
.resolve(['$q', function ($q) {
// The resolve can wait for a promise to be resolved
var differed = $q.defer();
setTimeout(function() {
differed.resolve();
}, 1000);
return differed.promise;
// Or a true value
// return true;
// Or even a truish value
// return 'value';
}])
.ready(function() {
// The order of where the ready() appear doesn't matter
alert('This is just another alert to show that it can have as many as possible!');
});
そしてhtml:
<body>
<div ng-if="!appReady" class="splash-screen">This is just the splash screen!</div>
<div ng-if="appReady">Welcome to the app!</div>
<script>
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
</script>
</body>
皆さんからのコメントをお待ちしています!