在余烬中,如何将视图数据从拖拽传递到拖拽?

我使用最新的ember和jquery.ui的Draggable和Droppable。 我也使用了一些天赋的人物创造出来的一些混合物,用来制作一个可拖拽和可拖拽的视图。 这是小提琴:

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

我需要将视图的内容附加到拖动事件,以便我可以在拖放事件中访问它。 直接jquery,我知道你会做$(..)。draggable({..})。data(“myData”,“some data here”); 但我不知道如何在这个实现中引用视图的内容。

下面是小提琴中AppDraggable的一个片段:

  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元素,我不知道如何引用View的变量。 我想传递视图的内容,以便在此处检索它:

  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的底部。


在这里回答我自己的问题。

我将数据附加在didInsertElement回调中,如下所示:

App.DraggableDataView = App.Draggable.extend({
    didInsertElement: function() {
        this._super();
        var element = this.get('element');
        $(element).data('myData',this.get('content'));
    },
});
链接地址: http://www.djcxy.com/p/60809.html

上一篇: In ember, how do I pass view data from a drag into a drop?

下一篇: AngularJS: How to run additional code after AngularJS has rendered a template?