2012-05-24 5 views
10

Ember.js로 드래그 앤 드롭을 구현하는 방법에 대한 예제가 있습니까? jQuery UI를 사용해 보았지만 통합이 다소 복잡해 보입니다.Ember.js로 드래그 앤 드롭

이 jsFiddle : http://jsfiddle.net/oskbor/Wu2cu/1/을 본 적이 있지만 내 자신의 앱에서 성공적으로 구현할 수 없었습니다.

Ember.js를 사용하여 간단히 드래그 & 드롭 구현을위한 옵션은 무엇입니까?

답변

17

Remy Sharp가 post을보고 Ember.js의 기본 예제를 구현했습니다 (http://jsfiddle.net/pangratz666/DYnNH/ 참조). 핸들 바

:

<script type="text/x-handlebars" > 
    Drag and drop the green and red box onto the blue one ... 

    {{view App.Box class="box green"}} 
    {{view App.Box class="box red"}} 

    {{view App.DropTarget class="box blue"}} 
</script>​ 

자바 스크립트 :

DragNDrop = Ember.Namespace.create(); 

DragNDrop.cancel = function(event) { 
    event.preventDefault(); 
    return false; 
}; 

DragNDrop.Dragable = Ember.Mixin.create({ 
    attributeBindings: 'draggable', 
    draggable: 'true', 
    dragStart: function(event) { 
     var dataTransfer = event.originalEvent.dataTransfer; 
     dataTransfer.setData('Text', this.get('elementId')); 
    } 
}); 

DragNDrop.Droppable = Ember.Mixin.create({ 
    dragEnter: DragNDrop.cancel, 
    dragOver: DragNDrop.cancel, 
    drop: function(event) { 
     var viewId = event.originalEvent.dataTransfer.getData('Text'); 
     Ember.View.views[viewId].destroy();   
     event.preventDefault(); 
     return false; 
    } 
}); 

App.Box = Ember.View.extend(DragNDrop.Dragable); 
App.DropTarget = Ember.View.extend(DragNDrop.Droppable);​ 
이 유망 보인다
+0

, 나는 내 자신의 응용 프로그램에있는 것과 유사한. 하지만 실제로 HTML5 드래그 가능 및 삭제 가능 특성을 지원하지 않는 브라우저는 지원하지 않습니다. 분명히 IE 지원에 가장 관심이 많습니다 :) –

+0

흠, IE에서 지원되는 것 같습니다. http://caniuse.com/#feat=dragndrop ... – pangratz

+1

jquery 1.7로 피들을 업데이트 할 수 있습니까? 그것은 jQuery 가장자리를 사용하여 깨진 것으로 보인다. –