다음 계층 구조를 만들어야합니다. 내 앱에서 여러 사용자 역할이 있습니다. 내 앱의 인터페이스는 각 역할에 대해 다른 탭이있는 최상위 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의 중첩 된보기 및 경로와 완전히 혼동합니다. 내가
나는 시도 할 것이다. 그러나 나는 도서관없이 그것을하고 싶었다. 어쨌든 고마워! – Victor
@Victor이 컨트롤러를 동적으로로드하기 위해 http://jsfiddle.net/joakimbeng/bPruQ/에서 만든 jsfiddle을 살펴 봅니다. ng-view 지시문에서 영감을 얻었습니다. 당신이 사용할 수있는 뭔가일지도 모릅니다. – joakimbeng