2013-07-10 3 views
0

내 응용 프로그램에서 주 컨트롤러가 템플릿 /보기 내의 해당 컨트롤러에 대한 두 번째 컨트롤러를 호출합니다 <div ng-controller="BasketCtrl"></div> 통해. 하지만 특정보기/템플릿을 사용하려면 'BasketCtrl'이라고 어떻게 말합니까?각도로 자식 컨트롤러가있는보기를 사용하려면 어떻게해야합니까?

내 '$ routeProvider'내에서이 "basket"을 내 사이트 전체에서 사용하기 때문에 사용하지 않으려합니다.

바구니는 쇼핑 카트의 내용을 보여주는 각 템플릿의 섹션입니다. 그러므로 나는 DIV 내에서 필요한 HTML을 만들고 싶지 않습니다. 그러면 많은 코드가 중복 될 것입니다 ... 아마 여기에 뭔가 잘못된 것이 있습니까?

답변

2

나는 바구니 지시문을 만들 것입니다. 다음과 같은 내용 :

app.directive('basket', function(){ 
    return { 
     templateUrl: 'basket-template.html', 
     link: function(scope, element, attr){ 
     } 
    } 
}); 

그런 다음 원하는만큼 많은 템플릿에 포함 할 수 있습니다. 지시문에 대한 자세한 내용은 여기를 참조하십시오. http://docs.angularjs.org/guide/directive

+0

지시어를 작성하는 것은 재사용 할 것인지 아닌지에 따라 좋습니다. 재사용하지 않을 경우 이해가되지 않을 수 있습니다. – frosty

+0

@aaronfrost 그는 그것을 재사용 중입니다. "바구니는 쇼핑 카트의 내용을 보여주는 각 템플릿의 섹션이 될 것입니다" –

+0

물론 좋은 생각입니다! – Joel

1

ng 컨트롤러를 추가 한 div의 BasketController 템플릿을 템플릿으로 만듭니다. 그것은 중첩 된 템플릿입니다.

<div ng-controller="BasketCtrl"> 
    <!-- put template inside of basketctrl --> 
</div> 

또는 다른 파일의 내부에 basketctrl을 원한다면, 당신이 할 수있는 당신의 BasketCtrl의 내부 NG를-포함하고 해당 서식에 대한 링크가 포함

<div ng-controller="BasketCtrl"> 
    <div ng-include="'foo/bar/BasketTemplate.html'"> 
</div> 

것은 모두 사용할 수 있는지 확인을 큰 따옴표와 작은 따옴표가 거기에 있습니다. 그렇지 않으면 작동하지 않습니다.

+1

그럴거야! 감사! – Joel

관련 문제