我想要做的是加载分离的模板并为每个模板添加一个控制器:
方法:
$http({
method: 'GET',
url: 'templates/myTemplate.html',
controller:'myCtrl'
})
function myCtrl($scope){
$scope.var1= "scoped variable";
}
myTemplate.html:
一个标签{{VAR1}}
这是这个问题的一个方法: Loading an AngularJS controller dynamically
答案 0 :(得分:1)
您的方案似乎是申请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
的值更改为另一个模板网址。该模板将指定ng-controller
属性,该属性指示该模板的适当控制器。