私はアプリ/ index.htmlをにカスタムHTML(シンプル負荷DIV)を追加することによって、これをしなかった:
<body>
<div class="loading-overlay" id="initialLoading"></div>
{{content-for "body"}}
<script src="assets/vendor.js"></script>
<script src="assets/event.js"></script>
{{content-for "body-footer"}}
</body>
は、その後、私は私のアプリ/アプリケーション/ route.jsに以下を追加:
actions: {
loading(transition/* , originRoute*/) {
let controller = this.get('controller');
if(controller) {
controller.set('currentlyLoading', true);
}
transition.promise.finally(function() {
$("#initialLoading").remove();
if(controller) {
controller.set('currentlyLoading', false);
}
});
}
}
だから何が起こるん
{{#if currentlyLoading}}
<div class="loading-overlay"></div>
{{/if}}
:私も負荷のdivを追加しなければならなかった私のアプリ/アプリ/ template.hbsで
?
- index.htmlがロードされており、まだjavascriptが解析されていません。読み込み画面が表示されます。
- index.htmlが読み込まれ、JavaScriptが解析されました。 ember.jsは読み込みアクションを呼び出し、currentlyLoadingをtrueに設定します。両方の読み込み画面が表示されます。
- 移行が完了し、最初の読み込みと2番目の読み込み画面が削除されます。現在進行中のすべての移行について、
- が読み込まれます。この動作を削除するには、2番目の読み込み画面ロジックを削除します。
私はそれが役に立ちそうです。
ありがとうございます、完璧に動作します!これに関するいくつかの文書があります:https://guides.emberjs.com/v2.5.0/routing/loading-and-error-substates/ – Lopo