При организации приложения AngularJS все ваши модули должны иметь одинаковые имена?

Должны ли ваши модули иметь одинаковое имя при организации проекта Angular? Я видел примеры обоих повсюду.

Учитывая такую ​​структуру:

root-app-folder
├── index.html
├── scripts
│   ├── controllers
│   │   └── main.js
│   │   └── ...
│   ├── directives
│   │   └── myDirective.js
│   │   └── ...
│   ├── filters
│   │   └── myFilter.js
│   │   └── ...
│   ├── services
│   │   └── myService.js
│   │   └── ...
│   ├── vendor
│   │   ├── angular.js
│   │   ├── angular.min.js
│   │   ├── es5-shim.min.js
│   │   └── json3.min.js
│   └── app.js
├── styles
│   └── ...
└── views
    ├── main.html
    └── ...

Как правило, каждый из ваших файлов начинается с angular.module('appName')... или сделать их уникальными, такими как angular.module('thisModuleName)...?

Каковы преимущества и недостатки обоих?

2 ответа

В типичном проекте вы будете работать только с одним модулем. Как правило, модуль будет объявлен в app.js файл с синтаксисом массива:

angular.module('app', ['dep1', 'dep2'])

куда dep1 а также dep2 любые зависимости, которые нужны вашему модулю. Затем в любом другом файле, например, в контроллере, вы просто связываете его с app Модуль, как это:

angular.module('app').controller(...) // no dependency array

AngularJS поставляется со встроенным механизмом внедрения зависимостей. Вы можете разделить ваше приложение на несколько различных типов компонентов, которые AngularJS может внедрять друг в друга. Модульность вашего приложения облегчает повторное использование, настройку и тестирование компонентов в вашем приложении.

AngularJS содержит следующие основные типы объектов и компонентов:

  • Значение
  • завод
  • обслуживание
  • поставщик
  • постоянная

Эти основные типы могут быть внедрены друг в друга с помощью механизма внедрения зависимостей AngularJS. В оставшейся части этого текста я объясню, как определить и внедрить эти компоненты друг в друга.

Другие вопросы по тегам