Angularjs:jquery可选

时间:2014-02-05 17:39:21

标签: jquery-ui angularjs

我已经创建了一个指令来处理由Jquery

提供的selectable
mydirectives.directive('uiSelectable', function ($parse) {
    return {
        link: function (scope, element, attrs, ctrl) {
            element.selectable({
                stop: function (evt, ui) {
                    var collection = scope.$eval(attrs.docArray)
                    var selected = element.find('div.parent.ui-selected').map(function () {
                        var idx = $(this).index();
                        return { document: collection[idx] }
                    }).get();

                    scope.selectedItems = selected;
                    scope.$apply()
                }
            });
        }
    }
});

在html中使用

<div class="margin-top-20px"  ui-selectable doc-array="documents">

其中documents是服务器在ajax响应中返回的数组。

它的工作正常我可以选择多个项目或单个项目

问题:我想清除关闭按钮上的选择

http://plnkr.co/edit/3cSef9h7MeYSM0cgYUIX?p=preview

我可以在控制器中编写jquery来删除.ui选择的类,但不推荐使用它 有人能引导我了解实现这类问题的最佳实践

更新

我通过在取消时播放事件并在指令

上收听来解决问题
$scope.clearSelection=function() {
      $scope.selectedItems = [];

       $timeout(function () {
            $rootScope.$broadcast('clearselection', '');
        }, 100);
    }

并在指令

scope.$on('clearselection', function (event, document) {
          element.find('.ui-selected').removeClass('ui-selected')
        });

这是正确的做法,或者解决问题的最佳做法是什么。

http://plnkr.co/edit/3cSef9h7MeYSM0cgYUIX?p=preview

0 个答案:

没有答案