0

我无法管理我的应用程序。我想将我的控制器分成几个文件。我阅读了布赖恩的福特博客(http://briantford.com/blog/huuuuuge-angular-apps.html),但我不太明白我应该怎么做。

在我的controller.js文件中,我有这样的东西:

function loginCtrl($scope){
     ....
}

function landingCtrl($scope){
    ...
}

我发现每个文件分离控制器的唯一方法是这样做:

应用程序.js:

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

控制器1.js:

musicApp.controller('loginController', ['$scope', loginCtrl],function loginCtrl($scope){
    ....
});

控制器2.js:

musicApp.controller('landingCtrl', ['$scope', landingCtrl],function landingCtrl($scope){
    ....
});

有一个更好的方法吗?

4

3 回答 3

1

我正在使用类似的方式如下:

Main.js

angular.module('app', []);

FooCtrl.js

angular.module("app").controller("FooCtrl", [
  "$scope", function($scope) {
  }
]);

google采用的另一种方式是:

# init empty Object
var docsApp = {
  controller: {},
  directive: {},
  serviceFactory: {}
};

# FooCtrl.js
docsApp.controller.FooCtrl = ['$scope', function($scope){}]

# BarCtrl.js
docsApp.controller.BarCtrl = ['$scope', function($scope){}]

... add services
... directives

# bootstrap angular
angular.module('docsApp', ['...']).
  config(...).
  factory(docsApp.serviceFactory).
  directive(docsApp.directive).
  controller(docsApp.controller);

看看谷歌 angularjs 教程中的这个 js:http: //docs.angularjs.org/js/docs.js

于 2013-09-27T12:14:36.793 回答
-1

您可以通过多种方式实现这一目标。

使用“。”为所有控制器创建一个文件。

musicApp.controller('loginController', ['$scope', loginCtrl,function loginCtrl($scope){
    ....
}]).controller('landingCtrl', ['$scope', landingCtrl,function landingCtrl($scope){
    ....
}]);

只需记住将函数包含在注入的参数数组中。

或每个文件一个控制器。

只需要使用您使用的任何方法(脚本标记、requirejs 等)包含每个 js 文件

于 2013-09-27T17:03:33.693 回答
-1

我有类似的东西:

main_router.js:

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

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

some_controller.js:

controllers.controller('SomeCtrl', ['$scope', function ($scope) { ... } ]);

于 2013-09-27T17:52:33.330 回答