0

Angular で $routeProvider を使用しています。特定のルートに行くたびに、コンソールにログが表示されます。

XHR finished loading: "http://localhost:8080/root/partials/view1.html".
XHR finished loading: "http://localhost:8080/root/partials/view2.html".
...

この時点で、特定のページがブラウザーにキャッシュされ、より高速に参照できると思います。Angular が初めて参照されるときに、バックグラウンドですべてのルートの XHR を作成するにはどうすればよいですか? 私はこのようなものを検索します:

for ( /* every page inside routeProvider */ ) {
    // XHRs the page
}
4

2 に答える 2

3

あなたの質問は、ドキュメントの例で回答されています。

要約$templateCacheすると、run メソッドに注入し ($routeルート テーブルからすべてのテンプレート URL を取得する場合も同様)、テンプレートをキャッシュに挿入できます。

チッ!

于 2013-08-28T13:21:30.373 に答える
2

そのためにgrunt-angular-templatesを使用します。これは、Angular テンプレートを に連結してプリロードする面倒な作業$templateCacheです。開発モードでのビルド時間の増加を避けるために、プロジェクトをビルドするときに本番モードでのみ実行します。次のように使用できます(gruntを使用すると仮定):

        ...
        ngtemplates: {
            myProject: {
                options: {
                    prepend: '/',
                    concat: 'out\\app.min.js'
                },
                src: ['app/**/*.html'],
                dest: 'out/templates.js'
            }
        }
       ...

app dir からすべての html ファイルを連結してから、ファイルをファイルtemplates.jsに追加します。本番環境では、すべての js コードとテンプレートを含むファイルのみがあります。私にとってはうまく機能します(jsコードが妥当なサイズであると仮定すると、あなたにとってもうまくいくはずです)。templates.jsapp.min.jsapp.min.js

于 2013-08-28T13:28:59.137 に答える