ngRoute는 Angular 팀이 구축 한 모듈로 기본적인 클라이언트 측 라우팅 기능을 제공합니다. 이 모듈은 라우팅을위한 매우 강력한 기반을 제공하며이 블로그 게시물에 예시 된 것처럼 견고한 라우팅 기능을 제공하기 위해 매우 쉽게 구축 할 수 있습니다 (저자는 저자 인 Ward Bell과 Ben Nadel의 의견 추적을 읽으십시오). 몇 가지 각도 전문가)
ui-router는 URL 중심 경로에서 응용 프로그램 "상태"로 포커스를 이동합니다.이 상태는 URL에 반영되거나 반영되지 않을 수 있습니다.
ui-router가 추가 한 주요 기능은 중첩 된 상태와 명명 된 뷰입니다.
중첩 상태를 사용하면 다양한 응용 프로그램에 대한 컨트롤러 논리를 분리 할 수 있습니다. 가장 간단한 예는 상단을 가로 지르는 기본 탐색, 왼쪽을 따라 보조 탐색 목록, 오른쪽에 콘텐츠가있는 앱입니다. 중첩 된 상태가 없으면 단일 컨트롤러는 일반적으로 컨텐츠뿐만 아니라 보조 탐색에 대한 디스플레이 로직을 처리해야합니다. 중첩 라우팅을 통해 이러한 문제를 분리 할 수 있습니다.
명명 된 뷰는 UI 라우터의 또 다른 추가 기능입니다. ngRoute를 사용하면 페이지에 단일 ngView 지시문 만있을 수 있지만 ui-router의 명명 된 뷰를 사용하면 여러 ui-view 지시문을 지정할 수 있으며 각 상태는 이름 뷰의 템플릿 및 컨트롤러에 영향을 줄 수 있습니다. 이에 대한 간단한 예는 앱의 기본 콘텐츠를 기본보기로 설정 한 다음 별도의 ui-view 인 바닥 글 막대를 갖는 것입니다. 이 시나리오에서 바닥 글의 컨트롤러는 더 이상 상태 / 경로 변경 사항을 수신하지 않아도됩니다.
이 팟 캐스트 에피소드 에서 ngRoute와 ui-router를 잘 비교할 수 있습니다 .
상황을 더욱 혼란스럽게 만들기 위해 Angular 팀이 Angular 1.5 및 2.0 버전에서 출시 할 것으로 예상되는 새로운 "공식"라우팅 모듈을 주시하십시오. ngRoute 모듈이 교체됩니다. 다음 은 새로운 라우터 모듈에 대한 최신 문서입니다. 구현이 아직 완료되지 않았기 때문에이 게시물을 작성하는 시점에는 상당히 드문 편입니다. 시계 여기에 이 모듈이 실제로 출시되는시기에 대한 자세한 소식.