javascript - 如何在angularjs中创建模块

标签 javascript angularjs ngroute angularjs-ng-route

在我读过的所有 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/

相关文章:

javascript - 通过 jquery 事件处理程序传递参数

javascript - UIB 日期选择器 - 显示前一天而不是当前日期(附有 Plunker)

javascript - Angular Routing ngRoute 无法提取我的其他 HTML 文件

javascript - 使菜单在点击任意屏幕时消失

javascript - 如何在一个主函数中使用两次 getJSON 调用?

angularjs - 如何在 AngularJS 中读取未知的提供者错误?

javascript - AngularJS 需要执行一个函数两次才能显示结果

angularjs - Angular ngRoute 'Controller' 声明是否必要?

javascript - 将 HashRouter 更改为 BrowserRouter - 导航栏不再起作用,但链接可以

javascript - 使用 http 协议(protocol)运行本地 HTML 文件