Javascript 当单击页面上的任意位置时,如何调用AngularJS指令的函数?

Javascript 当单击页面上的任意位置时,如何调用AngularJS指令的函数?,javascript,jquery,angularjs,angularjs-directive,Javascript,Jquery,Angularjs,Angularjs Directive,我想在单击页面中的任意位置时调用close()函数,但不起作用。我写的是: var liveSearch = function () { return { restrict: "A", scope: { myData: '=', ngModel: '=' }, templateUrl: "/js/app/common/template/livesearch.html", link: function ($scope, ele

我想在单击页面中的任意位置时调用close()函数,但不起作用。我写的是:

var liveSearch = function () {
return {
    restrict: "A",
    scope: {
        myData: '=',
        ngModel: '='
    },
    templateUrl: "/js/app/common/template/livesearch.html",
    link: function ($scope, element, attrs) {

        var close = function() {
            $scope.status = "close";
        };

        $scope.open = function () {
            $scope.status = "open";
        };

        $(document).on('click',function(){
            close();
        });
    }
};
app.directive("liveSearch", liveSearch);
请帮忙解决这个问题

已编辑

<div live-search my-data="data" ng-model="typeId" ></div>

您可以在
链接中编写
单击
处理程序

link:function($scope, element, attrs)){
    $scope.close = function(){
  // Rest of the code
   }       
    $('body').on('click',function(event){
      $scope.close();
      })
   }

尝试使用此ClickWhere指令检测DOM对象之外的任何位置的单击

directive('clickElsewhere', function($parse, $rootScope) {
        return {
            restrict: 'A',
            compile: function($element, attr) {
                var fn;
                fn = $parse(attr['clickElsewhere']);
                return function(scope, element) {
                    var offEvent;
                    offEvent = $rootScope.$on('click', function(event, target) {
                        if (element.find($(target)).length || element.is($(target))) {
                            return;
                        }
                        return scope.$apply(function() {
                            return fn(scope);
                        });
                    });
                    return scope.$on('$destroy', offEvent);
                };
            }
        };
    });
您可以在模板中这样使用它:

<div live-search my-data="data" ng-model="typeId" click-else-where="close()"></div>


您能分享一下您是如何使用此指令的吗?请查看编辑部分It work only textbox keydown事件,而不是click事件。此指令是为实时搜索创建的,当我尝试在textbox close()函数调用中键入搜索任何内容时。提供的指令在单击时工作-正如您的问题及其代码
$rootScope.$on('click',…