2013-09-18 6 views
1

Я вижу много таких угловых кодов. Следующий учебник.angularjs, стиль кодирования, использование глобальной переменной

angular.module('phonecat', ['phonecatFilters', 'phonecatServices']). 
    config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
     when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}). 
     when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}). 
     otherwise({redirectTo: '/phones'}); 
}]); 

Однако, я больше знаком с этим;

var app = angular.module('phonecat', ['phonecatFilters', 'phonecatServices']); 
app.config(function($routeProvider) { 
    $routeProvider. 
     when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}). 
     when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}). 
     otherwise({redirectTo: '/phones'}); 
}]); 

я даже хочу, чтобы определить, что function($routeProvider) { ...} в качестве переменной, но я не уверен в том, что будет работать.

Есть ли причина этого избежать глобальной переменной, в данном случае app.

Или это только одна из лучших практик в сообществе AngularJs?

ответ

1

angular.module (..) возвращает модуль, и вы можете;

  1. присвоить переменное приложение (которое является глобальной переменной).
  2. или продолжить сцепление это

Вы видели много прикованных примеров, потому что это в одном файле.

Вы также увидите множество примеров с использованием глобальной переменной «приложение» или что-то еще, потому что коды должны быть организованы во многие файлы.

Я рекомендую первый вариант, если вы делаете пример с одним файлом.
Я рекомендую второй, если вы делаете фактическое приложение, для которого требуется расстояние между именами.

1

Пространство имен хорошее. Лучший PRACTIVE использует angular.value вместо глобальных переменных

app.value('myVariable', 'myValue') 
    .controller('myController', function($scope, myVariable) { 
     ... 
    }); 
+0

Могу ли я получить какое-то чтение для этого? – allenhwkim

+0

Возможно, это поможет вам: http://javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/ –

+0

yi как namespacing, но, похоже, AngularJS не делает этого, например app.router, app .controller, app.filter и т. д. Хотите узнать причину этого. Должно быть. – allenhwkim

Смежные вопросы