2014-11-01 2 views

ответ

1

первый подход: с

var app = angular.module(...)... 

вы сохраняете ссылку на возвращаемый экземпляр модуля и повторно использовать его зарегистрировать несколько услуг/конфиги/поставщиков и т.д.

так что вы будете вызывать методы этого как

 app.config(); 
    app.controller(); 

и т.д.

второй подход: с этим

angular.module(...) 

вы СЦЕПЛЕНИЕ методы с точки между ними, потому что angular.module (...), contollers провайдеры возвращает модуль экземпляра, который может быть прикован

как

angular.module("sm",[]).config(function(){}).controller()... so on 

Сравнение/недостатки/Преимущества:

С первого подхода недостатком является то, что мы объявляем «приложение» промежуточную переменную, которая может оказаться в глобальном пространстве имен, если мы не используем IIFE

(function() { 
    var app = angular.module(...)... 
})() 

Таким образом, мы можем использовать angular.module («...») с каждый контроллер/завод и т.д., но это может быть много повторения

к счастью, мы можем использовать второй approcach к цепи, потому что angular.module (...), contollers, провайдеры возвращают экземпляр модуля

3

Самого стиль руководства по угловому рекомендуют первый вариант, так как вам действительно не нужно определять переменную для ссылки на модуль.
Вы можете получить доступ к модулю с angular.module('moduleName') следующим образом:

angular 
    .module('app') 
    .controller('SomeController' , SomeController); 

function SomeController() { } 

Я рекомендую этот style guide by John Papa

+0

Благодарим за сообщение John Papa – user1729972

1

Там нет никакой разницы, но стиль вы написать свой проект.

Рассмотрим следующий пример, демонстрирующие оба случая вы упомянули:

angular.module(...)

angular.module('myApp.', []) 
.value('version', '0.1') 
.service('apiFrontendService', ['$http', function($http) { /* */ } 
.factory('localFactory', ['$http', function($http) { /* */ } 
.controller('MyController', ['$http', function($http) { /* */ } 

и так далее. Здесь мы цепочка наши услуги один за другим.

вар приложение = angular.module (...) ...

var app = angular.module('myApp.', []); 
app.value('version', '0.1'); 
app.service('apiFrontendService', ['$http', function($http) { /* */ }; 
app.factory('localFactory', ['$http', function($http) { /* */ }; 
app.controller('MyController', ['$http', function($http) { /* */ }; 

Здесь вы определяете когда app, и вы можете использовать его в течение всего вашего проекта

0

последний используется для определения глобальная переменная для хранения главного модуля Angular. Таким образом, код может быть разделен на файлы.

// app.js 
var app = angular.module('testApp'); 

// aController.js 
app.controller('aController', ...); 

// bController.js 
app.controller('bController', ...); 

// someService.js 
app.service('seriousService', ...); 
Смежные вопросы