0

在我经历的所有 angularjs 教程中。模块创建如下

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

或 var routerApp = angular.module('routerApp', ['ui.router']);

我用meanjs样板代码开始我的项目,控制器开始如下

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']?编辑:

文章.client.modules.js

'use strict';

// Use Applicaion configuration module to register a new module
ApplicationConfiguration.registerModule('articles');
4

2 回答 2

2

angular.module("MyModule", [])(with []) 是一个 setter 函数,即 - 它注册一个模块。

angular.module("MyModule")without[]是一个 getter 函数,它检索以前注册的模块。

调用 setter 两次会重新定义模块。

我不熟悉 meanjs 样板,但很可能当您使用 setter 时,您已经重新定义了模块,并且之前注册的任何控制器、服务、配置等都被覆盖了。

您需要做的就是更改您添加的内容:

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
于 2014-12-23T05:24:52.063 回答
0
// Create a new module
var myModule = angular.module('myModule', []);

// register a new service
myModule.value('appName', 'MyCoolApp');

// configure existing services inside initialization blocks.
myModule.config(['$locationProvider', function($locationProvider) {
  // Configure existing providers
  $locationProvider.hashPrefix('!');
}]);

用法

angular.module(name, [requires], [configFn]);
于 2014-12-23T05:30:28.237 回答