2013-05-03 5 views
0

다음 계층 구조를 만들어야합니다. 내 앱에서 여러 사용자 역할이 있습니다. 내 앱의 인터페이스는 각 역할에 대해 다른 탭이있는 최상위 navbar로 구성됩니다. 각 탭은 일반적으로 일부 엔터티가 표시되고 첫 번째 엔터티가 기본적으로로드되는 마스터 상세보기를 포함합니다.중첩 된보기 및 컨트롤러

인증에 어려움을 겪기 전에 (나는 HTTP 인터셉터 등에 관한 기사를 찾았습니다.) 가장 간단한 것을 어떻게 수행해야하는지 궁금합니다. 네비게이션 시스템.

예를 들어, 사용자 역할을 하드 코드하고 관리 역할이 기본적으로로드되었다고 가정 해 봅시다. 상단 탐색이있는 cp.html 파일이 있습니다. 사용자가 로그인하면 '/'경로로 이동하면 관리자 탭을 사용하여 cp.html로 리디렉션해야합니다. 사용자가 로그인하지 않은 경우 '/ login'페이지로 리디렉션해야합니다.

는 cp.html의 예는 다음과 같습니다

<div class="navbar"> 
    <div class="navbar-inner"> 
     <ul class="nav"> 
      <li><a href="#/desktop">Desktop</a></li> 
      <li><a href="#/companies">Companies</a></li> 
      <li><a href="#/users">Users</a></li> 
     </ul> 
    </div> 
</div> 
<div ng-include src="include"> 
</div> 

을 그리고이 집이다 ('/') 컨트롤러 :

function homeController($scope, $routeParams, $location) { 
    if ($routeParams.tab) { 
     $scope.include = '/templates/' + $routeParams.tab + '.html'; 
    } else { 
     $scope.include = '/templates/companies.html'; 
    } 
} 

그리고 주요 app.js :

app.config(['$routeProvider', function($routeProvider) { 

$routeProvider 
    .when('/', { 
     templateUrl: 'templates/cp.html', 
     controller: homeController 
    }) 

    .when('/:tab', { 
     templateUrl: 'templates/cp.html', 
     controller: homeController 
    }) 

여기에 따라 다릅니다 : 탭 매개 변수 다른 .html 템플릿을 포함 할 수 있습니다. 그러나 컨트롤러를 다루는 방법은 무엇입니까? 회사 탭으로 가고 싶다고합시다. 내 navbar + 회사 콘텐츠를 갖고 싶습니다. 회사 탭을 클릭하면 파일이 포함되지만 homeController에 머물러 있습니다. ng-controller 지시문을 사용하면 회사의 ID를 어떻게 얻을 수 있습니까? 전형적인 예를 들면/companies/: companyId 라우트가 있습니다. 그러나 routeProvider에서이 경로를 사용하면 templateUrl로 무엇을 넣어야합니까? 또한 회사 탭을 클릭 할 때 내 URL을 변경하지 않고 enterprises.html 만 포함하십시오.

AngularJS의 중첩 된보기 및 경로와 완전히 혼동합니다. 내가

답변

0

angular ui-router 한 번 봐 ...이 처리하는 방법을 혼자 알아 내려고하지만 타사 라이브러리를 사용하여 사전에

감사를 싶지 않아, 나는 그것이 정확히 무엇을 생각 를 찾고 있습니다. their example app도 시도해보십시오.

+0

나는 시도 할 것이다. 그러나 나는 도서관없이 그것을하고 싶었다. 어쨌든 고마워! – Victor

+0

@Victor이 컨트롤러를 동적으로로드하기 위해 http://jsfiddle.net/joakimbeng/bPruQ/에서 만든 jsfiddle을 살펴 봅니다. ng-view 지시문에서 영감을 얻었습니다. 당신이 사용할 수있는 뭔가일지도 모릅니다. – joakimbeng

관련 문제