可排序 – 将参数从指令传递到回调

我试图定义一个包装 jqueryui可排序插件的指令排序.

角度代码是:

module.directive('sortable',function () {
    return function (scope,element,attrs) {
        var startIndex,endindex;
        $(element).sortable({
            start:function (event,ui) {
                startIndex = ui.item.index();
            },stop:function (event,ui) {
                endindex = ui.item.index();
                if(attrs.onStop) {
                    scope.$apply(attrs.onStop,startIndex,endindex);
                }
            }
        }).disableSelection();
    };
});

HTML代码是:

<div ng-controller="MyCtrl">
    <ol sortable onStop="updateOrders()">
         <li ng-repeat="m in messages">{{m}}</li>
    </ol>
</div>

MyCtrl的代码

function MyCtrl($scope) {
    $scope.updateOrders = function(startIndex,endindex) {
        console.log(startIndex + "," + endindex);
    }
}

我想在我的回调updateOrders中获取startIndex和endindex,并与它们进行一些操作,但它打印:

undefined,undefined

如何将这些参数传递给我的回调?我的方法是否正确?

范围.$apply接受函数或字符串.
在这种情况下,使用函数会更简单:
scope.$apply(function(self) {
    self[attrs.onStop](startIndex,endindex);
  });

不要忘记将您的HTML代码更改为:

<ol sortable onStop="updateOrders">

(已删除())

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...