Использование динамичных данных в директиве
Добрый день. У меня есть блок, куда встаёт текст:
<div tag-style>{{tags}}</div> Я хочу написать директиву, которая обработает текст и вернёт мне тэги. myApp.directive('tagStyle',function(){ return{ link: function(scope, element, attrs, controller){ element.html(devide(element.text().trim()); } }; function devide(text){ ... return smth; } function trim(){ return this.replace(/^\s+|\s+$/g, ''); } }); Директива отрабатывает, если данные подставлены статично. А так выводит результат обработки для текста {{tags}} Я так понимаю, мне нужно использовать $compile? Как его использовать после передачи в директиву? |
после вставки HTML выполни
$compile(element.contents())(scope); Незабудь $compile подключить. |
Добавлял эту конструкцию до :( Спасибо.
upd: не работает нормально, в функцию devide() падает ерунда. |
Код покажи и что попадает ?
|
И еще замечу что вот эта функция
function trim(){ return this.replace(/^\s+|\s+$/g, ''); } здесь ( element.text().trim() ) не работает Так как срабатывает trim для строки а твоя функция не при делах |
Хорошо, ни при делах да и фиг с ней сейчас. Я силюсь понять логику compile и директив (смысл понимаю, реализацию не очень).
В функцию devide() падает {{tags}}, если его алертить. |
Цитата:
|
Подскажите, пожалуйста, как их передать?
Я брал из element.text() и думал это верный способ — всё же в верстке остаётся только имя директивы.. |
песочницу мне тоже за вас рисовать? :)
|
Цитата:
Прошу, угощайтесь пожалуйста :) Как здесь $compile использовать? Если подставлять текст на прямую прям в div — работает нормально |
Часовой пояс GMT +3, время: 01:21. |