Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在用户单击页面上的任意位置时自动将文本区域清空。Angularjs,Javascript?_Javascript_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

如何在用户单击页面上的任意位置时自动将文本区域清空。Angularjs,Javascript?

如何在用户单击页面上的任意位置时自动将文本区域清空。Angularjs,Javascript?,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我在angularjs项目中工作,我有一个文本区域,它会给我一些搜索结果。我希望每当我点击页面上的任何地方时,我的文本区域都会被清除。我的代码是 <input type="text" ng-model="bigdata" ng-change="ctrl.getData(bigdata);searchDataC =true;" ng-model-options="{debounce: 1000}" placeholder="Search contacts" class="search-inp

我在angularjs项目中工作,我有一个文本区域,它会给我一些搜索结果。我希望每当我点击页面上的任何地方时,我的文本区域都会被清除。我的代码是

<input type="text" ng-model="bigdata" ng-change="ctrl.getData(bigdata);searchDataC =true;" ng-model-options="{debounce: 1000}" placeholder="Search contacts" class="search-input ip-size-roster ng-pristine ng-valid ng-touched" aria-invalid="false" style="">

您应该在要执行单击事件的位置使用ng click=“reset1()”

//html

 <div ng-controller="MainCtrl" ng-click="reset1()">
    <textarea id="textarea" ng-model="txt">

    </textarea>

   <div>{{txt}}</div>

<!--<button id='btn' ng-click="txt=''">Reset textarea</button>-->
    <button id='btn'>Reset textarea</button>
</div>


//js

var app = angular.module('myApp', []);

app.controller('MainCtrl', ['$scope', function ($scope) {
    $scope.txt='';

    $scope.reset1 = function() {
        $scope.txt = '';
    };
}]);

{{txt}
重置文本区域
//js
var-app=angular.module('myApp',[]);
app.controller('MainCtrl',['$scope',函数($scope){
$scope.txt='';
$scope.reset1=函数(){
$scope.txt='';
};
}]);
在Html文件中

app.factory('clickAnywhereButHereService', function($document){
  var tracker = [];

  return function($scope, expr) {
    var i, t, len;
    for(i = 0, len = tracker.length; i < len; i++) {
      t = tracker[i];
      if(t.expr === expr && t.scope === $scope) {
        return t;
      }
    }
    var handler = function() {
      $scope.$apply(expr);
    };

    $document.on('click', handler);

    // IMPORTANT! Tear down this event handler when the scope is destroyed.
    $scope.$on('$destroy', function(){
      $document.off('click', handler);
    });

    t = { scope: $scope, expr: expr };
    tracker.push(t);
    return t;
  };
});
app.directive('clickAnywhereButHere', function($document, clickAnywhereButHereService){
  return {
    restrict: 'A',
    link: function(scope, elem, attr, ctrl) {
      var handler = function(e) {
        e.stopPropagation();
      };
      elem.on('click', handler);

      scope.$on('$destroy', function(){
        elem.off('click', handler);
      });

      clickAnywhereButHereService(scope, attr.clickAnywhereButHere);
    }
  };
});


如果您在项目中的某个地方使用JQuery,那么您可以使用它


$(文档).ready(函数(){
$('div')。单击(函数(){
调试器
var check=$('#text').val();
如果(选中!=“”){
$('#text').val('')
}
});
});

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.firstName=“John”;
$scope.clear=函数(){
$scope.bigdata=“”;
}
});
学校的工作环节

您可以使用带有函数的
ng blur
指令来执行任何您想执行的操作,例如
ng blur=“ctrl.clearData()”
@FabioG让我检查并返回给您让我实现,然后返回给您让我实现,然后返回给您。我的座右铭是每当我单击页面中的任何位置时,文本框自动清空。您已经给出了单击按钮。谢谢你的回复使用angularjs的JQuery不是一个很好的练习,虽然我没有使用,但是谢谢你的回复。如果可能的话,我们将实施这一计划。代码正是我所期望的:)
$scope.clickedSomewhereElse = function () {
    //clear text here
};
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
<input type="text" ng-model="bigdata" ng-change="ctrl.getData(bigdata);searchDataC =true;" ng-model-options="{debounce: 1000}" placeholder="Search contacts" class="search-input ip-size-roster ng-pristine ng-valid ng-touched" aria-invalid="false" ng-blur="clear()">



</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.firstName = "John";

    $scope.clear = function(){
    $scope.bigdata="";
    }
});
</script>

</body>
</html>