Próbuję użyć Ember.js w połączeniu z funkcją przeciągania interfejsu jQuery UI, ale napotykam problemy. W szczególności, gdy używam pomocnika clone, nie jestem w stanie upuścić elementu i wszystko jest bardzo opóźnione. Jeśli nie używam pomocnika klonowania, wszystko działa zgodnie z oczekiwaniami.Ember.js + jQuery UI Draggable Clone
Podejrzeń, że jest to związane z jQuery UI klonowania html, w tym wszystkie metamorficzne znaczniki skryptu (używane do wiązania).
Nie muszę aktualizować elementu na żywo podczas przeciągania go. Czy istnieje sposób na usuwanie tagów wiążących z ember?
Dla porównania, tutaj jest logika widok:
didInsertElement: ->
@_super()
@$().draggable
cursor: 'hand'
helper: 'clone'
opacity: 0.75
scope: @draggableScope
@$().droppable
activeClass: 'dropActive'
hoverClass: 'dropHover'
drop: @createMatch
scope: @droppableScope
Moją pierwszą myślą było, aby spróbować użyć beginPropertyChanges
i endPropertyChanges
podczas przeciągania w celu zapobieżenia nieoczekiwane zachowanie. To nie działa, ani nie jest idealne, ponieważ chciałbym zaktualizować inne wiązania. Oto poprawiony kod, w którym podjąłem próbę:
didInsertElement: ->
@_super()
@$().draggable
cursor: 'hand'
helper: 'clone'
opacity: 0.75
scope: @draggableScope
start: ->
Ember.beginPropertyChanges()
stop: ->
Ember.endPropertyChanges()
@$().droppable
activeClass: 'dropActive'
hoverClass: 'dropHover'
drop: @createMatch
scope: @droppableScope
Każda pomoc zostanie bardzo doceniona.
Więc jak można ponownie włączyć potem wiążąca? Czy nie przejmowałeś się tym? –
wiązanie jest wyłączone tylko w sklonowanym elemencie używanym dla helpera przeciągania. Oryginalny element pozostaje nienaruszony – ghempton
Ahh cię. Cóż, nie mogę wymyślić nic, co można by zrobić, by zrobić to, co próbujesz zrobić. To, co dla mnie wygląda jak czyste rozwiązanie. –