Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.01.2014, 12:58
Новичок на форуме
Отправить личное сообщение для aikus Посмотреть профиль Найти все сообщения от aikus
 
Регистрация: 05.06.2012
Сообщений: 6

Надо заставить отработать директивы для динамичски вставленного блока
/UPD: Решено.

Доброе время!

У нас на проекте сейчас идёт не спешное (очень не спешное) переползание на ангулар. Ввиду этого появляются некоторые проблемы. Вот наткнулся на одну из них.

Код на jquery подгружает какие-то элементы и пихает их в dom. И всё бы ни чего, но среди этих элементов есть директивы англара. Вот и вопрос: как можно сделать так, чтоб директивы отработали до или после вставки кода?

т.е. есть директива <some-link model="Dog" id="1">Тузик</some-link> преобразовалась в <a href="some-prefix/Dog/1">Тузик</a>, как это делается при обычной загрузки страницы.

Если есть функция ангулара, то можно в меня кинуть ссылкой на эту функцию.

Последний раз редактировалось aikus, 24.01.2014 в 07:48. Причина: Забыл попросить ссылку
Ответить с цитированием
  #2 (permalink)  
Старый 23.01.2014, 13:20
Аватар для dolpheen
Интересующийся
Отправить личное сообщение для dolpheen Посмотреть профиль Найти все сообщения от dolpheen
 
Регистрация: 04.01.2014
Сообщений: 14

$compile - компилирует элемент DOMa и возвращает Link Function, которой надо передать scope с необходимыми данными.
http://docs.angularjs.org/api/ng.$compile

P.S. Пример "автономной" вставки разметки на Angular.
http://plnkr.co/edit/tBkcSaXrKzQ6y7VVcAUD?p=preview

Последний раз редактировалось dolpheen, 23.01.2014 в 13:37. Причина: Добавлен пример
Ответить с цитированием
  #3 (permalink)  
Старый 23.01.2014, 19:34
Аватар для jsru_
Кандидат Javascript-наук
Отправить личное сообщение для jsru_ Посмотреть профиль Найти все сообщения от jsru_
 
Регистрация: 09.04.2013
Сообщений: 149

Сообщение от dolpheen Посмотреть сообщение
$compile - компилирует элемент DOMa и возвращает Link Function
могу ошибаться, но вроде линк надо самомоу возвращать, а иначе undefined
Ответить с цитированием
  #4 (permalink)  
Старый 23.01.2014, 19:56
Аватар для dolpheen
Интересующийся
Отправить личное сообщение для dolpheen Посмотреть профиль Найти все сообщения от dolpheen
 
Регистрация: 04.01.2014
Сообщений: 14

Сообщение от jsru_
могу ошибаться, но вроде линк надо самомоу возвращать, а иначе undefined
$compile компилирует и "собирает" все link функции директив переданного ей дерева элементов, все это возвращается в виде специальной функции, при передаче scope которой производится вызов всех link функции собранных при компиляции (вызов производится согласно структуре DOM)
Ответить с цитированием
  #5 (permalink)  
Старый 23.01.2014, 20:07
Аватар для jsru_
Кандидат Javascript-наук
Отправить личное сообщение для jsru_ Посмотреть профиль Найти все сообщения от jsru_
 
Регистрация: 09.04.2013
Сообщений: 149

Сообщение от dolpheen Посмотреть сообщение
$compile компилирует и "собирает" все link функции директив переданного ей дерева элементов, все это возвращается в виде специальной функции, при передаче scope которой производится вызов всех link функции собранных при компиляции (вызов производится согласно структуре DOM)
ну я к тому, что надо ручками прописывать return function (scope, element, attrs, controller) {, сам он ничего не вернет
Ответить с цитированием
  #6 (permalink)  
Старый 23.01.2014, 20:23
Аватар для dolpheen
Интересующийся
Отправить личное сообщение для dolpheen Посмотреть профиль Найти все сообщения от dolpheen
 
Регистрация: 04.01.2014
Сообщений: 14

Сообщение от jsru_
ну я к тому, что надо ручками прописывать return function (scope, element, attrs, controller) {, сам он ничего не вернет
Это мы прописываем при описании директивы (при этом существует 3 варианта - возвратить функцию или свойство link объекта описания директивы или возвращая функцию из метода compile).
$compile - сервис ангуляра, который потом использует эти функции, которые мы прописали в директивах. (См.ссылку на пример выше на plnkr)
Ответить с цитированием
  #7 (permalink)  
Старый 24.01.2014, 07:47
Новичок на форуме
Отправить личное сообщение для aikus Посмотреть профиль Найти все сообщения от aikus
 
Регистрация: 05.06.2012
Сообщений: 6

Сообщение от dolpheen Посмотреть сообщение
P.S. Пример "автономной" вставки разметки на Angular.
http://plnkr.co/edit/tBkcSaXrKzQ6y7VVcAUD?p=preview
За пример, спасибо. Но оказалось, что у нас пробошен слушатель в ангулар (где собсвенно $compile и отрабатывает), и просто после вставки контенте нужно було создать соответсвующее событие. Этим и решил.

Но приведённый пример, это именно то, что я собственно и искал.
Проблема решена.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00