在AngularJS中分离控制器

时间:2014-07-05 23:51:45

标签: javascript angularjs

我试图将我的Angular控制器分成不同的文件。现在每个人都是这样的。

AddPropertyController.js

angular.module('myApp.controllers.addproperty', [])
    .controller(...);

SearchController

angular.module('myApp.controllers.search', [])
.controller(...);

现在,对于其中的每一个,我都必须将它们包含在Angular myApp中。通过:

angular.module('myApp', [
        'myApp.controllers.search',
        'myApp.controllers.addproperty'
    ])

我的问题是,有没有办法一次性包含它们而不是单独添加它们?我的第一次尝试是将每个模块命名为angular.module('myApp.controllers',...),然后在app中包含myApp.controllers。但这似乎不起作用......我想我问的是什么是分离控制器文件的最佳方法,但在一个模块中。谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

查看angularjs docs以获取有关控制器的信息并将其添加到应用级模块...

例如代码:

var myApp = angular.module('myApp',[]);

myApp.controller('SearchController', ['$scope', function($scope) {
  $scope.search = 'Hola!';
}]);

myApp.controller('AddPropertiesController', ['$scope', function($scope) {
  $scope.props = [];
}]);

您基本上将每个控制器附加到myApp实例,因此应用程序可以识别控制器。

答案 1 :(得分:1)

我会像这样组织他们:

<强> MyController1.js

  var MyController1 = ['$scope', function($scope) {

  }];

<强> MyController2.js

  var MyController2 = ['$scope', function($scope) {
  }];

<强> MyModule.js

  var app = angular.module('MyModule',[]);
  app.controller({
      MyController1: MyController1,
      MyController2: MyController2,
      etc
  });

这类似于Angular源代码本身的组织方式:

  
      
  1. AngularPublic.js
  2.   
  3. ng Directives
  4.   
相关问题