15

重複の可能性:
AngularJS - ルート - スター (*) をパスとして一致させる方法

ルートでワイルドカードを指定するにはどうすればよいですか -

$routeProvider
      .when('/admin/*', {
        templateUrl: 'admin.html',
        controller: 'AdminCtrl'
      })

したがって、上記は /admin/users および /admin/users/1 または /admin/org/3 に対して機能するはずです。そのため、admin の後に 1 つまたは 2 つのレベルのパスが存在する可能性があります。どうすればいいのですか ?

4

1 に答える 1

23

現在、AngularJSはルートでの正規表現をサポートしていません。

次のように回避できます

 app.config(['$routeProvider', function($routeProvider) {
        $routeProvider
                 .when('/admin', {templateUrl: 'admin.html', controller: 'AdminCtrl'})
                 .when('/admin/:type', {templateUrl: 'admin.html', controller: 'AdminCtrl'})
                 .when('/admin/:type/:id', {templateUrl: 'admin.html', controller: 'AdminCtrl'});  
 }]);

http://plnkr.co/edit/tBumW2oEqki2sEl1hjSc?p=preview

IMO、特別な要件がない限り、管理者とユーザーの両方に個別のコントローラーを用意することをお勧めします。

于 2013-01-08T16:17:35.730 に答える