0

我有带有指令的模块和带有控制器的模块的应用程序。

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) {
  ...
}
4

2 回答 2

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/

说实话,整个系列都很棒。

于 2013-03-15T10:47:16.683 回答
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) {
}

这些功能将作为控制器自动连接。然而,如前所述,这使得这些函数是控制器的意义不那么明显。

于 2014-03-09T22:15:07.720 回答