2

同じテンプレートを使用するいくつかのビューがあります。ルート パラメータの数だけが異なります。ルートが変更されるたびにビューが再レンダリングされないように設定するにはどうすればよいですかreloadOnSearch: false。何らかの理由。

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/feeds', {
            templateUrl: 'partials/feeds.html',
            controller: 'FeedsController'
        })
        .when('/feeds/:country', {
            templateUrl: 'partials/feeds.html',
            controller: 'FeedsController'
        })
        .when('/feeds/:country/:competition', {
            templateUrl: 'partials/feeds.html',
            controller: 'FeedsController'
        })
        .otherwise({
            redirectTo: '/feeds'
        });
}]);
4

1 に答える 1

-1

ドキュメントによると、path's1 つのルートに対して複数を定義することはできません。したがって、あなたの場合、次のroutesような2つの一意を定義する必要があります。

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
    .when('/feeds/:country/:competition/:event', {
        templateUrl: 'partials/event.html',
        controller: 'EventController'
    })
    .when('/feeds/:country/:competition', {
        templateUrl: 'partials/feeds.html',
        controller: 'FeedsController'
    })
    .otherwise({
        redirectTo: '/feeds'
    });
}]);

違いは、常に次のような完全なパラメータでこの URL を呼び出すことです。

http://yourapplication/feeds/false/false/false

http://yourapplication/feeds/1/false/false

http://yourapplication/feeds/1/2/false

http://yourapplication/feeds/1/2/3

そして、呼び出している人FeedsControllerはまだ2つのパラメータだけで一意です:

http://yourapplication/feeds/1/2/

于 2015-06-11T13:15:04.693 に答える