加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读