0

我想要做的是加载单独的模板并为每个模板附加一个控制器:

一种方法:

$http({
    method: 'GET',
    url: 'templates/myTemplate.html',
    controller:'myCtrl'
})

function myCtrl($scope){
    $scope.var1= "scoped variable";
}

我的模板.html:

一个标签

{{var1}}

这是解决这个问题 的一种方法:动态加载 AngularJS 控制器

4

1 回答 1

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为另一个模板 url;该模板将指定一个ng-controller属性,该属性指示该模板的适当控制器。

于 2013-08-16T00:51:33.243 回答