2013-09-30 4 views
3

라우팅 중에 '.when'호출에 여러 값을 전달할 수 있습니까? 예를 들어,Angular.js의 여러 매개 변수 '라우팅 중 호출'

$routeProvider 
    .when('/page1' || '/page2', 
    { 

    }); 

또는 내가 좋아 개별적으로 호출해야합니다 :

$routeProvider 
    .when('/page1', 
    { 

    }) 
    .when('/page2', 
    { 

    }); 

내가 개별적으로 호출 할 수 있어요,하지만 난 최상위 페이지의 특정 설정을 할 수 있습니다. 15 줄의 여분의 코드를 저장하기 위해 묶을 수 있는지 또는 개별적으로 호출해야하는지 알고 싶습니다.

답변

1

당신의 이름 사용할 수 있습니다 그룹 :

$routeProvider. 
    when('/page:id'), { 
     templateUrl: 'page-template.html', 
     controller: 'PageCtrl' 
    }). 
    when('/404'), { 
     templateUrl: '404.html', 
     controller: 'NotFoundCtrl' 
    }). 
    otherwise({ 
     redirectTo: '/404' 
    }); 

http://docs.angularjs.org/api/ngRoute.$routeProvider

PageCtrl

이런 식으로
app.controller('PageCtrl', function($routeParams, $location) { 
    switch ($routeParams.id) { 
    case 1: 
    case 2: 
    case 3: 
    case 4: 
     // code for your base pages 
     break; 
    default: 
     $location.path('/404'); // not base pages, 404 
     break; 
    } 
    // other code 
}); 

, URL이 /page1 중 하나가 아닌 경우, /page2, /page3 또는 /page4, 보기는 404 페이지로 리디렉션됩니다.

+0

글쎄, 특정 템플릿을 사용하고자하는 네 개의 기본 페이지가 있지만 다른 최상위 페이지를 404 또는 홈 페이지 또는 다른 것으로 리디렉션하고 싶습니다. 따라서': page'가''page1'',''page2'',''page3'' 또는''page4''이면 그 페이지들로 이동하지만': page'가 그것들은 404에 나옵니다. 조항을 개별적으로 추가 할 수 있지만, 그룹화 할 방법이 있는지 궁금합니다. – Chad

+0

@Chad 질문을 새 요구 사항으로 업데이트하십시오. –

+0

@Chad 나는 내 대답을 업데이트했다. –

관련 문제