angularjs – Angular:当filter参数为空时重新包含空值
发布时间:2020-12-17 17:55:41 所属栏目:安全 来源:网络整理
导读:我有一个非常简单的文本框,在一些无序的lis上过滤ng-repeat.当我向文本框添加值时,具有空值的项目将被删除,即使清除文本框也不会返回.我知道为什么会发生这种情况(搜索对象现在有一个与空值不匹配的空属性),但我无法弄清楚如何解决问题.我试图在没有运气的情
我有一个非常简单的文本框,在一些无序的lis上过滤ng-repeat.当我向文本框添加值时,具有空值的项目将被删除,即使清除文本框也不会返回.我知道为什么会发生这种情况(搜索对象现在有一个与空值不匹配的空属性),但我无法弄清楚如何解决问题.我试图在没有运气的情况下从搜索对象中弹出()属性.
HTML: <div ng-controller="ListCtrl"> <input type="text" ng-model="search.age" placeholder="Age"></input> <ul> <li ng-repeat="item in items | filter:search"> {{item.name}} - {{item.age}} </li> </ul> </div> JS: function ListCtrl($scope) { $scope.items = [ {'name':'Carl','age':69},{'name':'Neil','age':54},{'name':'Richard'},{'name':'Chris','age':58} ]; } 请查看JSfiddle以更好地说明问题. 解决方法
我在这个
answer的帮助下想出来了.如果我只是在文本框中添加了一个ng-change,我可以看到一个空值并删除该属性.
HTML: <input type="text" ng-model="search.age" ng-change="clear()" placeholder="Age"></input> JS: $scope.clear = function(){ if($scope.search.age.length == 0){ delete $scope.search.age; } } 更新了fiddle.我知道当前如果阻止用户过滤单个空间,但到目前为止这似乎不会对我造成问题. 奖金:!将返回所有空值和!!将返回所有非null值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |