微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我试图定义一个包装 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.jb51.cc/angularjs/142456.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐