在angularjs指令中的ng-controller?

时间:2014-05-26 00:01:47

标签: angularjs angularjs-directive

在许多教程中,我看到控制器被传递到这样的指令中:

.directive("mainRightPanel", function(){
  return {
        templateUrl: "views/partials/panels/mainRightPanel.html",
        controller: function($http, $filter, $scope) {
            var info = this;
            $scope.authorWorks;
            $http.get('test/book_data.json').success(function(data){
                $scope.authorWorks= data;
            });
          },
}

但是,我想以不同的方式做到这一点。我没有像上面那样编写javascript,而是在指令中调用控制器时出现问题,比如

<div ng-app="mainLeftPanelModule" ng-controller="leftPanelController" class="list-group ">

这可能吗?如果是这样,以这种方式连接控制器有什么问题吗?

1 个答案:

答案 0 :(得分:5)

您可以将ng-controller放在ng-app内的任何位置,包括指令模板内。例如,这应该工作:

.directive("mainRightPanel", function(){
    return {
    template: '<div ng-controller="myCtrl">The rest of your directive can go here<div>'
  }
}