如何使用AngularJS动态加载多个模板?

时间:2013-06-30 03:21:42

标签: angularjs

我是AngularJS的新手,来自PHP背景,我在服务器上进行所有模板聚合。使用PHP,我会抓取几个模板,将它们混合在一起,然后将其发送到客户端浏览器。 AngularJS允许我使用ng-view插入模板。这很好,但是它不处理我插入的模板可能包含作为其他模板的占位符的标记的情况。例如,我可能会将以下内容作为我的模板之一:

<div class="some_class">
    <div class="another_class">
        {content}
    </div>
</div>

在PHP中,我会插入此模板,然后将{content}的内容替换为另一个模板。在AngularJS中,我知道如何插入主模板(使用ng-view),但我不确定如何将“部分模板”动态加载到{content}标记中。这个假设是如何用AngularJS完成的?

2 个答案:

答案 0 :(得分:17)

一种直截了当的方法是使用ngInclude directive

<div class="some_class">
  <div class="another_class">
    <ng-include src="templatePath"></ng-include>
  </div>
</div>

然后,在与此模板关联的Controller中,您可以动态定义templatePath变量:

function MyCtrl($scope){
  $scope.templatePath = // define this var dynamically here
}

答案 1 :(得分:3)

Angular.js目前不支持使用ng-view嵌套多个模板。但是,有多种选项可以模拟该功能。请参阅this SO question中的几个选项中的答案,包括akonsu建议的ui-router。