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