Javascript 如何避免对angular js中的某些对象属性进行过滤

Javascript 如何避免对angular js中的某些对象属性进行过滤,javascript,angularjs,filter,Javascript,Angularjs,Filter,对象是 StudentObj = {name : 'Me', Place : 'Bangalore',uniqueId :'233abc233' } <input type='text' ng-model='sText'> Html模板 <ul> <li ng-repeat:'entry in StudentObj |filter:sText' > <span>{{entry.name}}</span>

对象是

StudentObj = {name : 'Me', Place : 'Bangalore',uniqueId :'233abc233' }
<input type='text' ng-model='sText'>
Html模板

<ul>
  <li ng-repeat:'entry in StudentObj |filter:sText' >
         <span>{{entry.name}}</span>
         <span ng-bind='entry.place'></span> 
   </li>
</ul>
  • {{entry.name}
且搜索筛选器为

StudentObj = {name : 'Me', Place : 'Bangalore',uniqueId :'233abc233' }
<input type='text' ng-model='sText'>

问题:

如果我在该行正在选择的文本过滤器中搜索“233abc233”, 但不应选择此

仅在“名称”和“位置”值上,应选择该行“


提前感谢

您可以使用这样的过滤器仅匹配两个字段:

<li ng-repeat="entry in StudentObj | filter:{name: sText, Place: sText}">
然后在
ng repeat
中使用它,如下所示:

<li ng-repeat="entry in StudentObj | filter:customFilter(sText)">

  • 示例plunker:

    问题仍然存在,因为筛选器将同时检查名称和位置属性,如果其中一个属性返回false,则逻辑失败。因此,您需要
    逻辑?如果名称或位置匹配,则应显示行,对吗?是的,请更正。如果我键入“Me”它应该在name或place中搜索,如果name返回true,那么这个逻辑应该返回true,即row selected,否则返回false
    
    StudentObj = {name : 'Me', Place : 'Bangalore',uniqueId :'233abc233' }
    
    <input type='text' ng-model='sText'>