如何在Angular中使用具有子控制器的视图?

时间:2013-07-10 14:38:24

标签: angularjs

在我的应用程序中,我有一个主控制器,在该控制器的模板/视图中,我通过<div ng-controller="BasketCtrl"></div>调用第二个控制器。 但是如何告诉'BasketCtrl'使用某个视图/模板?

我不想在我的'$ routeProvider'中使用这个“篮子”,因为它将在我的网站上使用。

购物篮将是每个模板的一部分,用于显示购物车的内容。因此,我不想在DIV中创建必要的HTML,这将导致大量代码的重复......我在这里可能出错了吗?

2 个答案:

答案 0 :(得分:2)

我会创建一个篮子指令。像这样:

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

然后,您可以将其包含在您想要的任意数量的模板中。在此处阅读有关指令的更多信息:http://docs.angularjs.org/guide/directive

答案 1 :(得分:1)

只需将你添加了ng-controller的div内的BasketController模板化。它是一个嵌套模板。

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

或者,如果你想在另一个文件中使用basketctrl,你可以在BasketCtrl中进行ng-include并包含指向该模板的链接:

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

确保在那里使用双引号和单引号。否则它将无法工作。