0

2 つのコンテキストで実行できるアプリケーションがあります -- 1) グローバルと 2) クライアント

グローバル コンテキストでは URL は mydomain.com/#login、mydomain.com/#register のようになりますが、クライアント コンテキストでは URL は mydomain.com/#/ClientKey/login および mydomain.com/#/ClientKey/ のようになります。登録。どちらのコンテキストでも、まったく同じテンプレート、つまり login.html と register.html を開きたいと考えています。これを実現する 1 つの方法は、次のように両方のケースで routeProvider.when をレプリケートすることです。

 $routeProvider.when('/:ClientKey/_login', { 
                templateUrl: 'views/login.html',
                controller: 'LoginCtrl', 
            })

 $routeProvider.when('/_login', { 
                templateUrl: 'views/login.html',
                controller: 'LoginCtrl', 
            })

私の質問は、わずかな違いで2回複製するのではなく、1つのrouteProvider.whenでそれを行う方法があるということです。login、register、editProfile、changePassword などのリンクがいくつかあるため、これは私のアプリケーションにとって重要です。

4

1 に答える 1

1

このような?

var routes = {
    '/_login' : { templateUrl: 'views/login.html', controller:'LoginCtrl' }
    ...
}

for (var k in routes) {
    $routeProvider
        .when(k, routes[k])
        .when('/:clientId' + k, routes[k]);
}

編集:

実際にはオプションのグループを?で実行できるため、次のように動作する可能性があります。

$routeProvider.when(':clientId?/_login', { ... });
于 2014-03-21T06:26:39.563 に答える