Многократное использование общей директивы
Всем привет. Подскажите как лучше сделать решение.
Мы имеем к примеру диалоговое всплывающее окно (которое вызывается при клике по DOM элементу), в котором показываем информацию, которую нам выдаст сервер. В чем собственно вопрос - как в одну директиву подсовывать разные другие директивы? Главная общая директива имеет каркас модального окна. Далее, если мне нужно там вывести видео, я вывожу директиву-видео плеер, если надо там вывести картинку - вывожу картинку, если аудио - аудио плеер. Вот такая задумка. Что посоветуете. |
Цитата:
Смотри там "modal". Это директива модального окна. В неё засовываешь любые шаблоны, в том числе по условию (ng-include способна брать на вход функцию, в функции через switch возвращаешь нужный шаблон (URL) с нужными тебе директивами). Ангуляр вполне сообразительный, сам всё скомпилирует и подключит. Другое дело, что тебе придётся ещё при вызове окна, пробросить в него все нужные для текущего шаблона переменные. Разберёшься, там примеры есть. |
Спасибо, но бутстрап мне не оч подходит, т.к. стили окна совсем другие, да и не хочется тянуть весь бутстрап ui из-за модального окна, что то полегче поищу.
Мне интересен сам процесс засовывания в директиву любых других шаблонов по условию и передачу всяких переменных. Можно какой то примерчик такой директивы? Что бы типа в контроллере проверять данные в скоп, и в зависимости от них, подсовывать шаблон в директиву. |
Цитата:
.state('LpWork.Memorials.Main', {
url: "/:pgName",
controller: 'PmtMainCtrl',
*!*
templateUrl: function($stateParams){
switch ($stateParams.pgName) {
case 'main':
case null:
{ return ""; }
// { return "partials/memorials-Home.html"; }
case 'card' : return "partials/memrCard-Work.html";
default : return "partials/memorials-Work.html";
*/!*
}
}
})
Пометил, где по условию выбирается шаблон. templateUrl берёт на вход либо строку либо функцию возвращающую строку. Заметь, точно так же (по условию) можно подсунуть контроллер (заранее сконфигурированный), т.е. у меня сейчас имя контроллера задано строкой, а могла бы быть функция, возвращающая строку. Цитата:
|
| Часовой пояс GMT +3, время: 12:18. |