Ember.jsをjQuery UIのドラッグ可能な機能と併用しようとしていますが、問題が発生しています。具体的には、cloneヘルパーを使用する場合、私は要素を削除することができず、すべてが極端に遅いです。クローンヘルパーを使用しないと、すべて正常に動作します。Ember.js + jQuery UI Draggable Clone
これは、(バインディングに使用される)すべてのmetamorphスクリプトタグを含む、htmlをクローニングするjQuery UIに関するものと思われます。
要素をドラッグしている間にライブ要素を更新する必要はありません。バインダータグをemberで取り除く方法はありますか?
didInsertElement: ->
@_super()
@$().draggable
cursor: 'hand'
helper: 'clone'
opacity: 0.75
scope: @draggableScope
@$().droppable
activeClass: 'dropActive'
hoverClass: 'dropHover'
drop: @createMatch
scope: @droppableScope
私の最初の考えがしようとすると予期しない動作を防ぐために、ドラッグ中にbeginPropertyChanges
とendPropertyChanges
を使用していた:
は参考のため、ここでのビューロジックです。これはうまくいかないようではないし、他のバインディングを更新したい場合には理想的です。ここで私はこれを試みた修正されたコードです:
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
ご協力いただければ幸いです。
で
それでは、どのように後で結合再度有効にしますか?それとも気にしませんでしたか? –
バインディングはドラッグヘルパーに使用されるクローンされた要素でのみ無効になります。元の要素はそのまま残っています。 – ghempton
ああ、持っています。まあ、私はあなたがしたいことをするために組み込まれているものは考えられません。あなたが持っているものは、私にとってクリーンなソリューションのように見えます。 –