AngularJS, внедряющий сервис в контроллер

0

Я только начал работать с angularJS и начал делиться своими main.js на несколько собственных файлов. Моя структура выглядит следующим образом:

app.js

index.html

/Услуги /service1

/Контроллер/CONT1

Мой вопрос заключается в том, как вводить службу в контроллер.

Приложение:

angular.module('App',['ngDragDrop']);

Обслуживание:

angular.module('App')
   .factory('service1',function()
{...}

Я попытался загрузить службу 1 в cont1, введя

angular.module('App')
    .controller('cont1', cont1);

cont1.$inject=['$scope', 'service1']; 

function cont1($scope, service1) {
    $scope.we=service1.doSomething(); 
}

но он никогда не работал.

Наконец, я добавил скрипт service1 в свой файл index.html, как раз перед загрузкой файла контроллера, и он работал нормально.

Должен ли я добавить каждую услугу, которую я хочу использовать где-нибудь в своем приложении, в индексный файл? Другого пути нет? Мне кажется, как-то тупым, если у меня есть тонны тегов скриптов в моем index.html

Greetz и спасибо заранее!

  • 0
    Если вы не включите скрипт, браузер не узнает, как его получить, так что да, это требование. Обычно люди объединяют свои JS в один большой файл или несколько файлов, чтобы свести к минимуму количество включений и количество обращений. Бегущие по заданиям, такие как Грант или Гулп, очень помогают в этом.
Теги:
dependency-injection

1 ответ

0
Лучший ответ

Да, ваш index.html будет содержать все ваши ссылки на скрипты. Вы можете получить фантазию и создать задачу, которая будет минимизировать и объединить весь ваш js файл в один, а затем будет иметь только один файл. Для целей отладки вы хотите иметь доступ ко всем вашим js файлам, если хотите установить контрольные точки и отладить

  • 0
    Да, я забыл о минифинге. Спасибо за указание на это! Я просто хотел убедиться, что я не наблюдал за чем-то фундаментальным в Angular, но когда это путь, я в порядке. Очевидно, что я должен загрузить скрипт, просто мысль о том, что как (слишком много) тегов скрипта меня напугала. Minifing решает это, когда я закончу разработку

Ещё вопросы

Сообщество Overcoder
Наверх
Меню