我试图将我的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。但这似乎不起作用......我想我问的是什么是分离控制器文件的最佳方法,但在一个模块中。谢谢你的帮助!
答案 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源代码本身的组织方式: