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

前端之家收集整理的这篇文章主要介绍了可排序 – 将参数从指令传递到回调前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图定义一个包装 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">

(已删除())

原文链接:https://www.f2er.com/angularjs/142456.html

猜你在找的Angularjs相关文章