2017-08-03 77 views
0

我有一个简单的搜索框。当输入框不为空时,删除按钮显示为删除框内的文本。之后,按钮应该再次消失,直到我再次在框中键入内容。AngularJS输入更改重置

当我手动删除文本的删除框正在消失,但是当我按删除按钮它不工作。
我必须使用.length吗?我以前使用.value就是这样的:
if ($(".form-control").value == '' || $(".form-control").value == $(".form-control").defaultValue) {

在此先感谢。

A = $范围

a.change = function() { 
     a.limit = 6; 

     var x = a.search; 
     if (x.length == '') { 


      $(".form-inline").removeClass("isset"); 
     } else { 
      $(".form-inline").addClass("isset"); 
     } 
    }; 


    a.clearSearch = function() { 
     a.search = ""; 
     a.limit = 6; 
    }; 

HTML的一部分:

<input type="search" ng-change="change()" ng-model="search" class="form-control" placeholder="Labor durchsuchen..."> 

<div class="icon-close" ng-click="clearSearch()"></div> 
+3

你为什么要使用jQuery的角度? –

+0

所以你可以看到哪个div是我的意思 –

+0

当jQuery代码有本地的angularjs方法来完成相同的时候,将jquery代码和angularjs混合是不可取的。 –

回答

1

可以使用纳克级为您正在使用jQuery做什么: -

var app = angular.module("myApp", []); 
 
app.controller("myCtrl", function($scope) { 
 
    
 
    $scope.formData = {}; 
 
$scope.change = function() { 
 
     //do anything here 
 
    }; 
 

 

 
    $scope.clearSearch = function() { 
 
     $scope.formData.search = ""; 
 
    }; 
 
});
<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    
 
<input type="search" ng-class="(formData.search != undefined && formData.search)?'isset':''" ng-change="change()" ng-model="formData.search" class="form-control" placeholder="Labor durchsuchen..."> 
 

 
<div class="icon-close" ng-click="clearSearch()"></div> 
 
</div>

0

你应该能够删除的jQuery代码,只需使用

<div class="icon-close" ng-click="clearSearch()" ng-show="search.length===0"></div> 
0

我认为你需要触发您的a.change函数在a.cleanSearch内再次检查是否输入了内容或n OT。

a.clearSearch = function() { 
    a.search = ""; 
    a.limit = 6; 
    a.change() 
};