我试图将我的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',…),然后只包括myApp。控制器。但这似乎不起作用……我想我问的是什么是最好的方法,有分离的控制器文件,但在一个模块。谢谢你的帮助!
查看angularjs文档中有关控制器的信息,并将它们添加到应用级模块…
例如你的代码:
var myApp = angular.module('myApp',[]);
myApp.controller('SearchController', ['$scope', function($scope) {
$scope.search = 'Hola!';
}]);
myApp.controller('AddPropertiesController', ['$scope', function($scope) {
$scope.props = [];
}]);
你基本上是将每个控制器附加到myApp实例,所以应用程序知道控制器
我会这样组织它们:
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源代码本身的组织方式类似:
- AngularPublic.js
- ng指令