2014-12-23 2 views
0

Во всех обучающих программах angularjs, с которыми я прошел. Модули создается следующим образомКак создать модуль в angularjs

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

или уаг 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'], если модуль уже зарегистрирован? Edit:

articles.client.modules.js

'use strict'; 

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

ответ

2

angular.module("MyModule", [])[]) является функцией сеттер, то есть - он регистрирует модуль.

angular.module("MyModule") без [] - это функция геттера, она извлекает ранее зарегистрированный модуль.

Вызов сеттера дважды переустанавливает модуль.

Я не знаком с шаблоном meanjs, но, по всей вероятности, когда вы использовали сеттер, вы переопределили модуль, и все контроллеры, службы, конфиг и т. Д., Которые ранее были зарегистрированы, были перезаписаны.

Все, что вам нужно сделать, это изменить то, что вы добавили:

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 
+0

да что модуль зарегистрирован в другом файле как ApplicationConfiguration.registerModule ('articles') ;. Как добавить новый компонент в этот модуль без переопределения модуля? – raju

+0

Используя getter: 'angular.module (" articles ");' –

+0

MEAN не объявляет новые модули с переменной, всегда использует 'angular.module' для всех компонентов – charlietfl

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]); 
Смежные вопросы