我有带指令和应用程序的模块,它是带控制器的模块。
angular.module('ValidationWidgets', [])
.directive('validationfield', function () {
....
});
angular.module('MyPage', ['ValidationWidgets'])
.controller('MyFirstController', function ($scope) {
....
});
是否有一些漂亮的语法在app模块中声明许多控制器,因为.controller('MyFirstController', function ($scope) {
看起来很糟糕?
我想写一些类似的东西:
var myPage = angular.module('MyPage', ['ValidationWidgets']);
myPage.controllers.MyFirstController = function($scope) {
...
}
答案 0 :(得分:3)
var app = angular.module("myApp", []);
app.controller("my controller", function(){});
或
var app = angular.module("myApp", []);
var controllers = {};
controller.myController = function(){};
app.controller(controllers);
观看此视频http://egghead.io/video/angularjs-thinking-different-about-organization/
诚实地讲,整个系列都很棒。
答案 1 :(得分:0)
要扩展@Jacob Dalton所说的内容,你可以这样做:
设置您的路线:
app.config(['$routeProvider', function($routeProvider, $locationProvider) {
$routeProvider.
when('/view1', {templateUrl: 'partials/view1', controller: 'View1Ctrl'}).
when('/view2', {templateUrl: 'partials/view1', controller: 'View2Ctrl'}).
otherwise({redirectTo: '/view1'});
}]);
然后你可以通过简单地声明一个函数来声明你的控制器:
function View1Ctrl($scope, $http) {
}
function View2Ctrl($scope, $http) {
}
这些功能将作为控制器自动连线。然而,如前所述,这使得这些功能不再是控制器。