4

我正在使用角度拖放,但我无法通过 onStart、onDrag、onDrop 或 onStop 将参数传递给控制器​​。我有许多不同的变体,如下所示,但似乎没有任何效果:

jqyoui-draggable="{onStart: 'onSegmentDragStart(event, ui, timeSegment)'}"

jqyoui-draggable="{onStart: 'onSegmentDragStart({{timeSegment}})'}"

jqyoui-draggable="{onStart: 'onSegmentDragStart({{timeSegment : timesegment}})'}"

<div>
  <div ng-repeat="timeSegment in $ctrl.deal.deal_settings.dayparting.schedule[dayName]">
    <div  class="time-segment-grid"
          ng-style="$ctrl.timeSegmentGridStyle(timeSegment)"
          uib-tooltip="{{ $ctrl.timeSegmentGridTooltipText(timeSegment) }}"
          tooltip-append-to-body="true"
          tooltip-class="deal-dayparting-grid-tooltip"
          ng-click="$ctrl.toggleTimepicker(dayName)"

          data-drag="true"
          data-segment-id="$index",
          jqyoui-draggable="{
              onStart: 'onSegmentDragStart(timeSegment)',
              onDrag: 'onSegmentDragDrag(timeSegment)',
              onStop: 'onSegmentDragStop(timeSegment)',
          }"
      >
    </div>
  </div>
</div>

4

1 回答 1

0

在另一个答案中,我找到了一个可能的解决方案,他们声明了选项,然后在模板中使用了这些选项。因此,在您的情况下,您可以添加一个新的 data 属性到 hold data-timeSegment= "timeSegment",然后在处理程序中检索它:

$scope.dragOptions = {
    start: function(e) {
      $(e.currentTarget).data("data-timeSegment");
    },
    drag: function(e) {
      
    },
    stop: function(e) {
      
    },
    container: 'container-id'
}
于 2020-07-30T21:23:08.767 回答