Sto cercando di utilizzare Ember.js insieme alla funzionalità trascinabile dell'interfaccia di jQuery, ma sto riscontrando problemi. In particolare, quando si utilizza l'helper clone, non riesco a rilasciare l'elemento e tutto è estremamente laggoso. Se non utilizzo l'helper clone, tutto funziona come previsto.Ember.js + jQuery UI Draggable Clone
Sospetto che ciò sia relativo all'interfaccia utente di jQuery che clona l'html, inclusi tutti i tag di script metamorfici (utilizzati per il binding).
Non ho bisogno di aggiornare l'elemento dal vivo mentre lo sto trascinando. C'è un modo per rimuovere i tag vincolanti con la brace?
Per avere un riferimento, qui è la logica vista:
didInsertElement: ->
@_super()
@$().draggable
cursor: 'hand'
helper: 'clone'
opacity: 0.75
scope: @draggableScope
@$().droppable
activeClass: 'dropActive'
hoverClass: 'dropHover'
drop: @createMatch
scope: @droppableScope
Il mio primo pensiero è stato quello di cercare di utilizzare un beginPropertyChanges
e endPropertyChanges
durante il trascinamento per evitare un comportamento imprevisto. Questo non sembra funzionare, né è l'ideale come vorrei che altri binding si aggiornassero. Ecco il codice revisionato in cui ho tentato di farlo:
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
Qualsiasi aiuto sarebbe molto apprezzato.
Così come si fa riattivare vincolante dopo? O non ti importa di quello? –
l'associazione è disabilitata solo nell'elemento clonato utilizzato per l'helper di trascinamento. L'elemento originale rimane intatto – ghempton
Ah, ti ho preso. Beh, non riesco a pensare a qualcosa di costruito per fare ciò che stai cercando di fare allora. Quello che hai sembra una soluzione pulita per me. –