将Controller连接到$ http html数据?

时间:2013-08-15 22:43:51

标签: angularjs

我想要做的是加载分离的模板并为每个模板添加一个控制器:

方法:

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

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

myTemplate.html:

一个标签

{{VAR1}}

这是这个问题的一个方法: Loading an AngularJS controller dynamically

1 个答案:

答案 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属性,该属性指示该模板的适当控制器。