2014-09-17 5 views
4

Возможно ли создать элемент elem/string, который скомпилирован Angular, который затем я могу отправить в другую часть приложения, которая находится за пределами угловой?

var eventListElem = $compile('<full-event-list></full-event-list>')(scope); 

myFuncOutsideOfAngular(eventListElem); 

Я создал директиву (полный список событий), который принимает список событий из выбранной области и повторяет над ним и создает мой HTML (работает в моем угловом приложении).

Но когда я отправляю eventListElem в свою часть jQuery, унаследованную от старого приложения, он отображает [Object object] в DOM. Я попытался сделать $ (eventListElem) и eventListElem.html(), не повезло. Похоже, компиляция $ создает объект Angular, который я не могу преобразовать в строку HTML или объект jQuery.

Любые идеи?

+0

Каким должен быть получившийся HTML? –

+0

KungWaz

+0

Какой браузер вы используете? –

ответ

1

уступи идти:

var eventListElem = angular.element('<full-event-list></full-event-list>'); 
$compile(eventListElem)(scope); 
scope.$digest(); 
myFuncOutsideOfAngular(eventListElem); 

в angular.element() является псевдонимом для JQuery, если Jquery загружается он может работать.

+0

Мой первый тест с этим решением не сработал. Я посмотрю, смогу ли я сделать плункер с тем, чего хочу достичь. – KungWaz

+0

Попробуйте пропустить дайджест(); после компиляции $ ... (...) это обеспечит выполнение функции ссылки. См. Обновление для публикации. – Fordio

+0

Рабочий пример: http://plnkr.co/edit/HkCGFsBX751oPyXgzKEn?p=preview – KungWaz

Смежные вопросы