Javascript Angularjs:名称以开头时搜索筛选器不工作!(感叹号)

Javascript Angularjs:名称以开头时搜索筛选器不工作!(感叹号),javascript,angularjs,search,filter,Javascript,Angularjs,Search,Filter,我有一个州的列表,我在州名上添加了搜索过滤器。 我有这样的数组: stateList:[{name:'abc',area:500},{name:'!def',area:500}] 我有和ng repeat=“stateList中的state | filter:{name:searchText}” 使用ng model=“searchText” 搜索在正常情况下工作,但当我搜索时!(感叹号)。它没有产生任何结果。它应该给国家命名'!def'试试这种方法 <input type="text"

我有一个州的列表,我在州名上添加了搜索过滤器。 我有这样的数组:

stateList:[{name:'abc',area:500},{name:'!def',area:500}]

我有
  • ng repeat=“stateList中的state | filter:{name:searchText}”

    使用
    ng model=“searchText”

    搜索在正常情况下工作,但当我搜索时!(感叹号)。它没有产生任何结果。它应该给国家命名'!def'

    试试这种方法

    <input type="text" ng-model="state.name"/>
    
    ng-repeat="state in stateList | filter:state"
    
    
    ng repeat=“状态列表中的状态|过滤器:状态”
    
    问题在于
    标记识别为“否定谓词”。不过,您可以像这样创建自定义的
    myFilter

    angular.module('app',[]).controller('ctrl',function($scope){
    $scope.stateList=[{
    姓名:“abc”,
    面积:500
    }, {
    名称:“!def”,
    面积:500
    }]
    }).filter('myFilter',function(){
    返回函数(输入、过滤器){
    如果(!filter.name)
    返回输入;
    返回输入。过滤器(函数(x){
    返回x.name.indexOf(filter.name)!=-1;
    });
    }
    })
    
    
    • {{state | json}

    我建议您创建自己的自定义过滤器angularjs搜索过滤器的任何限制或问题?angularjs似乎对!进行了否定!。看一看,我只想在state的name属性上添加过滤器。所以我必须定义
    过滤器:{name:searchText}
    。对不起。但是我没有得到你的答案。文本框用于搜索。正确的?为什么要在搜索文本框中写入
    state.name