AngularJS $ компилировать с помощью jQuery clone ()

0

Я знаю, что это не идеально, но я использую jQuery UI Draggable, Droppable и Resizable в моей сборке AngularJS.

Мой Draggable использует опцию clone helper, поэтому мне нужно дублировать draggable, как только я опустил его в элемент Droppable.

Для этого я использую следующий код.

$formContainer.droppable({
     'drop' : function (event, ui) {

          var clone = ui.helper.clone();

          clone.draggable({ /* ... */ });

          clone.resizable({ /* ... */ });

          clone.appendTo('#form-container');

     }
});

Это отлично работает, пока мне не понадобится ng-click внутри Draggable.

Вопрос: Каков режим элегантный способ использования компиляции $ со значением var clone так что ng-click и т.д. Все еще работает, как только я добавил новый элемент?

Я заставляю вручную передавать строку HTML в $compile затем вручную обновлять встроенные атрибуты стилей/данных/классов, добавленные к исходному элементу из плагина Draggable?

  • 0
    попробуйте скомпилировать клон, используя $ compile (clone) (scope)
  • 0
    @Jugnu Да, я попробовал это. Не повезло. Спасибо за предложение, хотя!
Показать ещё 1 комментарий
Теги:
compilation

1 ответ

0
Лучший ответ

@Jugnu: Спасибо, что нашли время, чтобы посмотреть на мой вопрос. Я смог решить проблему с тем, что, по моему мнению, является скорее "угловым" подходом (с использованием привязки данных и директив), а не подходом "jQuery" (вручную добавление элементов в DOM с помощью .append()).

Вот скрипка, с которой все работает: http://jsfiddle.net/1knfywzr/

Когда я отбрасываю draggable, я извлекаю необходимые данные и сохраняю их в массиве. Затем я использую ng-repeat для цикла по массиву и прикрепления директив к документу. Затем директивы используют ранее извлеченные данные для размещения/размера нового перетаскиваемого.

Я очень доволен этим подходом, поскольку он кажется немного более организованным, чем моя оригинальная идея, но я счастлив, что другие могут поделиться своими мыслями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню