2013-07-10 16 views
0

在我的應用程序中,我有一個主控制器,在該控制器的模板/視圖中,我稱第二個控制器爲<div ng-controller="BasketCtrl"></div>但我如何告訴'BasketCtrl'使用某個視圖/模板?如何在Angular中爲子控制器使用視圖?

我不想在我的'$ routeProvider'中使用這個「籃子」,因爲它會在我的網站中使用。

籃子將是每個模板的一部分,顯示購物車的內容。因此,我不想在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

只需將BasketController模板添加到您添加ng控制器的div的內部即可。它是一個嵌套模板。

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

或者,如果你想另一個文件裏面你basketctrl,你可以做一個NG-包括您BasketCtrl的內部,包括一個鏈接到該模板:

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

一定要同時使用那裏有雙引號和單引號。否則它將無法工作。

+1

這將做到!謝謝! – Joel

相關問題