在我读过的所有 AngularJS 教程中。模块创建如下
var newApp = angular.module('articles', []);
或者 var routerApp = angular.module('routerApp', ['ui.router']);
我使用meanjs样板代码开始了我的项目, Controller 启动如下
angular.module('articles').controller('ArticlesController', ['$scope', '$stateParams', '$location', 'Authentication', 'Articles',
function($scope, $stateParams, $location, Authentication, Articles) {
$scope.authentication = Authentication;
.....
.....
]);
当我将其更改为
var newApp = angular.module('articles',[]);
newApp.controller('ArticlesController', ['$scope', '$stateParams', '$location', 'Authentication', 'Articles',
function($scope, $stateParams, $location, Authentication, Articles) {
$scope.authentication = Authentication;
.....
.....
]);
所有文章路径停止工作。如果我想在模块中包含一个新组件,我该怎么做。我想将 angularFileUpload 添加到我的模块中。
AngularFileUpload 中的示例代码为
angular
.module('app', ['angularFileUpload'])
.controller('AppController', function($scope, FileUploader) {
$scope.uploader = new FileUploader();
});
如果模块已注册,如何添加 ['angularFileUpload']? 编辑:
articles.client.modules.js
'use strict';
// Use Applicaion configuration module to register a new module
ApplicationConfiguration.registerModule('articles');
最佳答案
angular.module("MyModule", [])
(使用 []
)是一个 setter 函数,也就是说 - 它注册一个模块。
[]
的 angular.module("MyModule")
是一个 getter 函数,它检索以前注册的模块。
调用 setter 两次会重新定义模块。
我不熟悉meanjs样板,但很可能当您使用setter时,您已经重新定义了模块,并且之前注册的任何 Controller 、服务、配置等......都被覆盖了。
您所需要做的就是更改添加的内容:
var newApp = angular.module("articles");
示例:
angular.module("M", []).controller("A", function(){}); // module M has controller A
angular.module("M").controller("B", function(){}); // module M has controllers A, B
var app = angular.module("M", []); // module M re-registered
app.controller("C", function(){}); // module M has controller C only
关于javascript - 如何在angularjs中创建模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27614471/