2012-10-03 73 views
1

我使用的是最新的ember和jquery.ui的Draggable和Droppable。我也使用了一些天賦的人物創造出來的一些混合物,以便在燼中製作可拖拽和可拖拽的視圖。這裏的小提琴:在餘燼中,如何將視圖數據從拖拽傳遞到拖拽?

http://jsfiddle.net/inconduit/6n49N/7/

我需要視圖的內容附加到拖動事件,這樣我可以在下拉菜單事件訪問它。直接jquery,我知道你會做$(..)。draggable({..})。data(「myData」,「some data here」);但我不知道如何在這個實現中引用視圖的內容。

下面是App.Draggable在撥弄一個片段:

App.Draggable = JQ.Draggable.extend({ 
    appendTo: 'body', 
    helper: function() { 
      $(this).data("myData","this is where actual data would go"); 

JQ.Draggable延伸Ember.View。在helper()函數內部,'this'引用了實際的DOM元素,我不知道如何引用視圖的變量。我想通過視圖的內容,以便它可以在這裏獲得:

App.Droppable = JQ.Droppable.extend({ 
     drop: function(event,ui) { 
      alert('Dropped! ' + $(ui.draggable).data("myData")); 

可拖動看起來像這樣的模板:

{{#view App.Draggable contentBinding="App.anObject"}}Drag me{{/view}} 

,我想傳遞的內容。請看看小提琴,相關的功能定義在javascript的底部。

回答

1

在這裏回答我自己的問題。

我重視在didInsertElement回調的數據如下:

App.DraggableDataView = App.Draggable.extend({ 
    didInsertElement: function() { 
     this._super(); 
     var element = this.get('element'); 
     $(element).data('myData',this.get('content')); 
    }, 
}); 
+0

你是如何在驗收測試測試拖放? – lft93ryt