angularjs中的多个控制器和文件

时间:2014-12-11 11:40:28

标签: angularjs angularjs-controller

我在多个文件中有多个控制器。 在一个页面上我使用两个控制器。

现在我收到错误'&p1=not%20a%20function%2C%20got%20undefined'

app.js:

var app = angular.module('demo', ['MainControllers', 'MainServices'])
    .constant('myConfig', {
        'backend': 'http://localhost:7645',
});

控制器1:

angular.module('MainControllers', ['ui.bootstrap'])
.controller('DemoOneController', function($scope, $rootScope, $modal, mainService) {

控制器2:

angular.module('MainControllers', ['ui.bootstrap'])
.controller('DemoTwoController', function($scope, $rootScope, $modal, mainService) {

控制器3:

angular.module('MainControllers', ['ui.bootstrap'])
.controller('ModalDemoCtrl', function ($scope, $modal, $log) {

出了什么问题?

1 个答案:

答案 0 :(得分:0)

当您使用angular.module('MainControllers', ['ui.bootstrap'])时,将覆盖您使用MainControllers名称定义的上一个模块。你只需要一个模块的定义,所以你可以这样做,

angular.module('MainControllers', ['ui.bootstrap'])
  .controller('DemoOneController', function($scope, $rootScope, $modal, mainService) {

angular.module('MainControllers')
   .controller('DemoTwoController', function($scope, $rootScope, $modal, mainService) {

angular.module('MainControllers')
    .controller('ModalDemoCtrl', function ($scope, $modal, $log) {

从第二个和第三个控制器中删除, ['ui.bootstrap']将解决最重要的问题,

当angular找到带有或不带空的模块依赖数组时

angular.module('MainControllers', []) //没有依赖

angular.module('MainControllers', ['ui.bootstrap']) //具有依赖性

它会覆盖模块。

如果你喜欢angular.module('MainControllers').controller('Mo ....`//没有依赖数组

它将检查已定义名称为MainControllers的模块,并将controller分配给该模块。

这是演示Plunker