使用Angular UI Sortable时,不会执行自定义事件处理程序?

时间:2016-07-11 16:56:54

标签: javascript angularjs jquery-ui jquery-ui-sortable

我有以下代码:

  <ul ui-sortable ng-model="list">
    <!-- onDragStartHandler() is a global function, not part of $scope -->
    <li draggable ondragstart="onDragStartHandler();" ng-repeat="item in list">Item: {{item}}</li>
  </ul>

使用ui-sortablegithub)指令时,根本不会执行附加到ondragstart的代码。

您可以看到此here

有关如何调用此事件处理程序的任何想法吗?

1 个答案:

答案 0 :(得分:1)

我的猜测是,ui-sortable操纵dom并删除事件处理程序。

如果你look at their options - 你可以像这样连接回调:

<ul ui-sortable="sortableOptions" ng-model="list">
  <!-- onDragStartHandler() is a global function, not part of $scope -->
  <li draggable ng-repeat="item in list">Item: {{item}}</li>
</ul>

和您的控制人员:

$scope.sortableOptions = {
  start: onDragStartHandler(e, ui)
};

因为onDragStartHandler是一个全局函数 - 请记住,您可能需要$ apply()范围以查看绑定更新。