定义控制器的angularjs错误

时间:2014-10-01 23:05:25

标签: angularjs

在阅读了一些教程后,我构建了我的应用程序,以便有一个控制器&服务模块,它们是应用程序的依赖项。我会让控制器模块调用点控制器来创建一个新的控制器。我用我的一些代码完成了这项工作。我尝试添加另一个控制器,相同的代码不起作用。任何人都可以告诉我为什么下面的代码部分不适用于添加控制器。

// ffpApp.js 
ffpApp = angular.module("ffpApp",
            ['ngRoute',
             'ffpControllers',
             'ffpServices']);

 /* Controllers */
 var ffpControllers = angular.module('ffpControllers', []);

 /* Services */
 var ffpServices = angular.module('ffpServices', ['rails']);

这是我定义控制器的文件。

// createnew_controller.js 

'use strict';

/* Controllers */
var ffpControllers = angular.module('ffpControllers');

//
// This section of code works.
//
angular.module('ffpApp').controller('MyController', ['$scope', function ($scope) {
    console.log("hello world");
}]);


//
// This section FAILS; argument not a function got Undefined when
// trying to use it in ffpApp.js
//
ffpControllers.controller('MyController', ['$scope', function ($scope) {
    console.log("hello world");
}]);

1 个答案:

答案 0 :(得分:0)

您工作的控制器已添加到名为' ffpApp'的模块中。即主App模块不属于专用控制器模块。 两个控制器都有相同的名称,即' MyController'。

代码:

var ffpControllers = angular.module('ffpControllers');

正在创建另一个与主App模块同名但没有依赖关系的模块。需要删除此代码。

尝试以下方法。确保文件包含在index.html文件中。

APP.JS

/*================================================================
Module - main App module 
dependencies injected include the controllers module and services module
=================================================================*/
angular.module("ffpApp", ['ngRoute', 'ffpControllers', 'ffpServices']);

CONTROLLERS.JS

/*================================================================
Module - Just for Controllers
Define your controllers in this file also
=================================================================*/
angular.module('ffpControllers', [])

//Controller 1
.controller('MyController1', function ($scope) {
    console.log("hello from controller 1");
})

//Controller 2
.controller('MyController2', function ($scope) {
    console.log("hello from controller 2");
});

SERVICES.JS

/*================================================================
Module - Just for Services
Define your services in this file below the module
=================================================================*/
angular.module('ffpServices', []);