2015-06-17 4 views
0

Я работаю над крупномасштабным угловым проектом с командой разработчиков.Управление именами углового модуля в большом проекте

проблема, с которой мы сталкиваемся, - это если у вас есть несколько файлов для компонента, например, директива.

некоторых-directive.js
некоторого-директивный-controller.js

в определении обоих файлов вы должны прикрепить их к модулю, однако один файл должен создать модуль с []. Если разработчик забывает совать, они добавят [] во второй файл, который на самом деле перезапишет модуль. так что теперь он становится игрой памяти. Каждый разработчик должен помнить только объявить модуль в одном файле []

некоторые-directive.js

angular.module('some-module',['some-dependencies']).directive('some-directive',function(){}); 

некоторые-controller.js

angular.module('some-module',[]).controller('some-controller',function(){}); 

мы использовали следующий подход. Есть ли способ лучше?

некоторые-directive.js
некоторые-директивные-module.js
некоторые-директивные-controller.js

где некоторые директивы-модуль содержит только создание модуля, включает в себя все зависимости, и делает любой .config необходимо. Тем не менее разработчику необходимо запомнить angular.module ('some-directive') во всех других файлах без квадратных скобок.

некоторые-директивные-module.js

angular.module('some-directive',[]) 
.config(//someconfig stuff); 

некоторые-директивные-module.js

angular.module('some-directive).directive(//declare directive);

некоторые-директивные-controller.js

angular.module('some-directive).controller(//declare contrller used by directive);

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

некоторых директива-module.js

angular.module('some-directive',['some-directive.directive','some-directive.controller']) 
.config(//someconfig stuff); 

некоторые-директивный-module.js

angular.module('some-directive.directive',[]).directive(//declare directive);

некоторые-директивные-controller.js

angular.module('some-directive.controller',[]).controller(//declare contrller used by directive);

Есть ли лучший способ? Или один из вышеуказанных вариантов правильный?

+0

Я рекомендую вам взглянуть на Угловой Styleguide Джона Папы https://github.com/johnpapa/angular-styleguide. Он выходит за рамки шаблона для именования материала и дает вам целый мир хороших практик для Angular apps. Он также гибкий, поэтому вы можете адаптировать его к своим предпочтениям. Я использую его в своих проектах, и все идет хорошо. – Hodes

ответ

1

recommended way (по multiple competent people) является использование сеттер-геттер-синтаксис (один раз, создавая angular.module("someModule",[]) и с доступом к angular.module("someModule") оттуда). Включение определения и конфигурации модуля в один файл кажется очень чистым и является обычной практикой между многими разработчиками. Но не создавайте модуль для каждой директивы - групповые службы, директивы, константы и т. Д. Вместо этого в разумные функциональные модули.

Поняв, что такое файл, содержащийся по его названию, также является хорошей идеей, на мой взгляд, поэтому подход some-directive-module.js кажется мне прекрасным. Если разработчики «трясутся» и «дико добавляют []», они должны получить пощечину на запястье, объясненное тем, как модули работают в угловом режиме, поэтому они перестают это делать ;-)

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