@vasIvas

Что происходит в директиве с templateUrl?

Для проекта все представления вынес в отдельные html файлы и подтягиваю их через templateUrl.
Но как и когда происходит их загрузка?
И ещё у меня из-за templateUrl разногласия по структуре.. Использования angular с requirejs нарушает гармонию идеи самого angular. Поэтому продакшен будет выглядеть как? app.js, style.css и целая туча view.html? разве это не глупо? Или все как-то по другому проходит?
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
Загрузка происходит при первом обращении к шаблону.
Т.е. как только у вас компилируется шаблон с директивой, загружается шаблон этой директивы.

Чтобы сделать "жадную" загрузку шаблонов в продакшне используют $templateCache. Смысл в том, что при поиске шаблона сначала проверяется $templateCache на наличие шаблона с указанным именем (в случае с директивой имя == значению атрибута templateUrl).
Если он там есть, то он просто оттуда берется, иначе осуществляется попытка его загрузить.

mod.run(function($templateCahce) {
  $templateCache.put('components/button/template.html', '<div></div>');
});

// Директива
return {
  templateUrl: 'components/button/template.html',
  ...
}

В это примере ангуляр просто возьмет шаблон из кеша, который был установлен при старте программы.
Само собой, никто вручную шаблоны не вставляет в код. Для этого есть плагины для различным систем сборки, например
https://www.npmjs.com/package/gulp-angular-templat...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы