nuclear_kote
@nuclear_kote

Как правильно пользоваться $compile?

Пытаюсь сделать директиву-атрибут при навешевании которой текущий элемент будет копироваться через $(element).clone() и добавляться перед текущим элементом, как то модифицируется и по ondrag как то двигается. Проблема в том что в нем есть динамический контент, поэтому нужно компилировать его. Если пытаюсь делать $compile(clone)(scope); при подготовке клона приложение вылетает со stackoverflow, если компилирую в onDrag начинаются дикие тормоза.
function link(scope, element, attrs) {
....
     $ionicGesture.on('dragright' onDrag, element);
     clone = $(element).clone();
     wrapper = $('<div> </div>').append(clone);
     clone.css('position', 'absolute');
     
     element.before(wrapper);
     $compile(wrapper)(scope); //stack overflow
     
    $compile(wrapper)(scope, function (clonned) { //опять stack overflow
     element.before(clonned);
    }); 

    function onDrag() {
     clone.css('left', ....) ;
     $compile(wrapper)(scope); //Работает, но с дикими тормозами + контент {{}} успевает показаться
    }
}
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Так-то неудивительно что stackoverflow. Вы же вызываете compile клонируемого элемента. Compile вызывает link функцию -> вызываем compile -> клонируем элемент и вызываем compile -> вызывается link функция ....
Вы чего хотите в итоге получить?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы