1. ホーム
  2. angularjs

[解決済み] AngularJSでパーシャルを必要なときだけでなく、最初から読み込むようにする方法はありますか?

2022-04-13 08:50:31

質問

このようなルートが設定されています。

var myApp = angular.module('myApp', []).
    config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/landing', {
            templateUrl: '/landing-partial',
            controller: landingController
        }).
        when('/:wkspId/query', {
            templateUrl: '/query-partial',
            controller: queryController
        }).
        otherwise({
            redirectTo: '/landing'
        });
}]);

angularjsに、要求されたときだけでなく、最初から両方のパーシャルをダウンロードさせることができるようにしたいのです。

それは可能ですか?

どのように解決するのですか?

はい、これには少なくとも2つの解決策があります。

  1. を使用します。 script ディレクティブ ( http://docs.angularjs.org/api/ng.directive:script ) を使って、最初に読み込まれる HTML にパーシャルを配置します。
  2. を記入することもできます。 $templateCache ( http://docs.angularjs.org/api/ng.$templateCache の結果に基づいて)必要に応じて、JavaScriptから $http の呼び出し)

もし、(2)の方法で記入したい場合は $templateCache は、このようにできます。

$templateCache.put('second.html', '<b>Second</b> template');

もちろん、テンプレートのコンテンツは $http の呼び出しがあります。

$http.get('third.html', {cache:$templateCache});

ここでは、そのテクニックをプランカーで紹介します。 http://plnkr.co/edit/J6Y2dc?p=preview