3

angularは、「ng-view」要素を含むテンプレートビューをリクエストすることをどのように知っていますか?

アプリケーションでナビゲートする場合は、直接言う

http://localhost/Categories/List/accessories

. すべてのビューをレンダリングするために必要な「ng-view」要素が含まれているため、「/ またはインデックス テンプレート」に対してリクエストが行われます。

インデックスから /Categories/List/accessories に移動すると、インデックスに対するリクエストが再度行われません。

以下は、GitHub の Angular MVC "CookBook" の例から部分的にコピーされた私の基本的なルーティングです。

angular.module('myApp', ['myApp.ctrl.list'])
    .config(['$routeProvider', '$locationProvider', function ($routeProvider) {
        $routeProvider.when('/', {
            templateUrl: '/Home/Splash',
        });
        $routeProvider.when('/Categories/List/:slug', {
            templateUrl: '/Categories/List',
            controller: 'listCtrl',
        });
        $routeProvider.otherwise({
            redirectTo: '/'
        });
    }]);
4

2 に答える 2

3

ルーティング構成では、サンプル URL にポンド記号 (#) が欠落していると思われるため、次のようになります。

http://localhost/#/Categories/List/accessories

# 記号の後の部分は、AngularJS によって解決されることを意図したパス (つまり、定義したルーティング構成) です。

上記の URL をブラウザのアドレス バーに入力すると、ブラウザは自動的にindex.htmlon を探しlocalhostます。すべてではないにしても、ほとんどのブラウザーは、URL にドメイン名しかない場合、index.html を探すように設定されています。

#記号の後の部分はどうですか?あなたは尋ねるかもしれません。定義上、# 記号の後のパスはサーバーに送信されないため、ブラウザはその部分が何で構成されているかをあまり気にしません。

index.htmlあなたが言及した2番目のシナリオでは、AngularJSは最初にロードされたときにキャッシュされ、そのキャッシュされたコピーが使用されるため、 要求しません。

于 2013-04-16T15:42:53.137 に答える