2014-08-30 6 views
0

저는 AngularJS에서 새로 왔으며 링크를 클릭하여 다른 템플릿을 포함시켜야합니다.링크 클릭시 포함시킬 방법

nav.html과 header.html이 있습니다. 두 가지 모두 index.html에 포함되어 있습니다. HEADER.html 현재에서 나는

<li class="search-box visible-md visible-lg" data-ng-include=" 'views/calls/search.html' "> 

전화/search.html에

<div class="input-group" data-ng-controller="callSearchCtrl"> 
<span class="input-group-addon"><i class="fa fa-search text-muted"></i></span> 
<input type="text" class="form-control" placeholder="Suchen..."></div> 

을 그리고 연락처를로드하는 메뉴 점 (예 : 연락처)를 클릭하여 헤더에 다른 템플릿을 포함해야 /search.html

<div class="input-group" data-ng-controller="contactsSearchCtrl"> 
<span class="input-group-addon"><i class="fa fa-search text-muted"></i></span> 
<input type="text" class="form-control" placeholder="Suchen..."></div> 

다른 검색 컨트롤러를 얻으려면.

로드 된 콘텐츠 템플릿에서 검색 할 머리글에 검색 표시 줄이있는 경우입니다.

은 어쩌면 내가

누구든지 해결책을 알고 ...이 문제를 해결하기 위해 잘못된 사고 방식을 가지고있어?

ADDITION :

지금 내가 좋아하는 내 탐색 메뉴에서 다른 NG-클릭을 넣어 :

  <a href="#/contacts/contacts" data-ng-click="selectType('contacts')"><i class="fa fa-users"></i><span>Kontakte</span></a> 

하지만 내 HeaderCtrl 또는 내 NavCtrl에 스코프 기능을 넣어해야합니까?

P.

건배 bambamboole 내 나쁜 영어 :-) 죄송

+0

ng-switch에 대한 문서를 참조하면 도움이 될 것입니다. 또는 ng-include에 대한 실제 경로가 포함 된 다른 범위 변수를 업데이트하는 범위 함수를 호출 할 수도 있습니다. 호프가 도움이 될 것입니다. –

+0

@bambamboole re : Addition - 두 템플릿이 공유하는 범위에 있어야합니다. 더 일반적으로, 나는 당신이 필요로하는 것보다 더 많은 컨트롤러를 사용하고있을 것이라고 생각한다. – christang

답변

2

간단하고 아마도 가장 관용적는 @ 존이 코더에서 알 수 있듯이이다. 메뉴 옵션이 적절한 핸들러를 호출한다 컨트롤러에서

data-ng-include="search.option" 

,

$scope.search = {}; 
$scope.selectType = function (type) { 
    $scope.search.option = 'views/'+type+'/search.html'; 
}; 
$scope.selectType('calls'); 

같은

data-ng-click="selectType('calls')" 

또는

data-ng-click="selectType('contacts')" 

적절.

+0

흠. 그러나 내 탐색 바와 내 머리글 (검색 창 포함)에는 다른 컨트롤러가 있습니다. – bambamboole

관련 문제