我可以将控制器功能提取到外部文件吗?

时间:2016-03-21 14:37:54

标签: angularjs

我的控制器有点忙,找到我正在寻找的功能变得很麻烦。我想为我的一些控制器功能提供单独的文件。我怎样才能做到这一点?是否有类似ng-include的控制器可供使用?

1 个答案:

答案 0 :(得分:0)

您可以使用mixin模式。这允许您使用其他控制器扩展控制器。因此,您现在有两个不同的控制器,而两个控制器同时执行:

app.controller('AnyController', ['$scope'
    function ($scope) {
      return {
          myFunction: function() {
               // do something
          }
      }
    }
]);

app.controller('MyMainController', ['$scope'
    function ($scope) {
      var anyThing = $controller('AnyController as anyThing',{$scope: $scope}),
      $scope.anyThing = function() {
          // those two options are now both valid:
          anyThing.myFunction();   

          $scope.anyThing.myFunction();
      }
    }
]);

现在,您可以将单独的控制器移动到不同的文件中。