@moveOn

Как в angularjs сделать передачу шаблона в директиву по параметру?

В приложении есть вывод в ng-repeat, но элементы нужно отображать по разному. И нужно отделить шаблоны отображения от кода приложения, то есть обязательно во внешних файлах. Как передать и обработать в директиве внешний шаблон?

Мне нужно что бы работало вот так:

<test template-src="template1.html"></test>
<test template-src="template2.html"></test>


Возможно это?
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 1
mazhekin
@mazhekin
Frontend, Backend Web Developer
Да, на первом ангуляре такое возможно. Решение такое. Все это можно сделать внутри директивы test.
1) Все шаблоны грузятся в кеш. Для доступа к шаблонам нужно использовать сервис $templateCache.
Содержимое шаблона переводим в переменную
var template = $templateCache.get('nameOfTemplate.html');

2) Потом нам надо скомпилировать содержимое переменной template.
var scope = {
   var1: 'Переменная в шаблон',
   someEvent: function() {
        alert('Событие из шаблона')
   }
}
var compiledContent = $compile(template)(scope)

3) B И третье вставить в DOM скомпилированный фрагмент кода.
element.append(compiledContent)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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