В приложении, над которым я работаю, имена людей упоминаются во всем приложении. Я хочу показать контактную карточку по клику для любого человека, который появляется - в основном, небольшой popout с их контактной информацией.Угловая директива, Вставить HTML после элемента
Я использую Angular для этого и объединил это вместе с помощью директивы. HTML выглядит следующим образом:
<a class="user" ng-person person="{{event.actor}}">{{event.actor}}</a>
И я получил директиву, которая выглядит следующим образом:
angular.module('myApp').directive('person', function($timeout){
var link = function(scope, el, attr){
var person = attr.person;
$timeout(function(){
$(el).popup();
}, 0);
el.after("<div class='ui special popup'><div class='ui header'>"+person+"</div></div>");
}
return {
link: link
}
});
В принципе, то, что я делаю здесь, используя директиву, чтобы иметь возможность помечать элементы, где я хочу, чтобы это отображалось с «ng-person», и сразу же вставляйте элемент popup.
Мой главный вопрос: я хотел бы разбить эту строку HTML в el.after()
в свой собственный файл, так что управлять ею проще. Есть ли хороший способ импортировать HTML-строку из другого файла в такую директиву?
Также может быть совершенно лучший способ сделать это в целом. Если есть, я все уши.
FYI - Я использую Semantic UI для части пользовательского интерфейса, поэтому синтаксис всплывающих окон через их структуру.
Спасибо!
Есть ли конкретная причина, по которой вы хотите загрузить отдельный HTML-файл, отличный от повторного использования? – wahwahwah
HTML будет немного более сложным, поэтому его проще управлять и поддерживать как отдельный файл, а не строку в директиве. –