看来您的方案将是一个应用的好地方ng-include。例如,给定这个标记:
<div ng-controller="MainCtrl">
<div ng-include="template"/>
</div>
这段代码在MainCtrl:
function MainCtrl($scope) {
// some logic that would determine the template you want to load
$scope.template = 'templates/myTemplate.html';
}
这段代码在templates/myTemplate.html:
<div ng-controller="TemplateCtrl">
<!-- Template Content -->
</div>
angular 将自动下载templates/myTemplate.html并应用于TemplateCtrl模板。(当然你还需要TemplateCtrl定义。)当你想切换模板时,MainCtrl你需要将值更改$scope.template为另一个模板 url;该模板将指定一个ng-controller属性,该属性指示该模板的适当控制器。