Угловая фильтрация JS необходима на уровне свойств объекта, установленного на уровне объекта для повторения ng

0

Я пытаюсь найти список с входным текстовым вводом,

<input disable-auto-close  type="text" class="form-control" placeholder="Query" ng-model="query" stop-event />
</div>
</li>
<li role="presentation" ng-repeat="eachObj in objList | filter:query" >
   <a class="dd-li-item" role="menuitem" tabindex="-1" >
      {{eachObj.name}}      
   </a>
</li>

Я понял, что мой фильтр выполняет поиск на уровне объекта, а не на уровне свойства имени объекта. Я имею в виду, если я наберу "a", он должен искать eachObj.name, а не eachObj. Мой текущий поиск получается, если какое-либо свойство eachObj содержит "a", то оно показывает, что вместо этого только если eachObj.name содержит "a", тогда только оно должно отображать это имя. есть ли какое-нибудь простое решение для этого.

Ниже приведены примеры json и dropdown:

<div class="dropdown">
   <div class="smp-list-selected btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
      <div class="smp-list-selected-label">{{sampleCtrl.dropdownSelectedLabel}}</div>
      <div class="caret dropdown-caret"></div>
      <div class="subscript-indicator" ng-if="sampleCtrl.isQualified(sampleCtrl.selectedsmp.id)">Qualified</div>
   </div>
   <ul class="dropdown-menu smp-list" role="menu" aria-labelledby="dropdownMenu1" auto-close="outsideClick">
      <li role="presentation" >
         <div class="input-group input-group-sm search-control-for-smps"> <span class="input-group-addon">
            <span class="glyphicon glyphicon-search"></span>
            </span>
            <input disable-auto-close  type="text" class="form-control" placeholder="Query" ng-model="query" stop-event />
         </div>
      </li>
      <li role="presentation" ng-repeat="smpObj in sampleCtrl.smpList | filter:{name:query} " ng-click="sampleCtrl.selectsmp(smpObj)">
         <a class="dd-li-item" role="menuitem" tabindex="-1" >
            {{smpObj.name}}
            <div class="subscript-indicator" ng-if="sampleCtrl.isQualified(smpObj.id)">Qualified</div>
         </a>
      </li>
   </ul>
</div>

 vm.smpList = [
  {
    "id": "3",
    "name": "Check",   
    "status": "Sent"
  },
  {
    "id": "4",
    "name": "Tupper",    
    "status": "In"
  },
  {
    "id": "8",
    "name": "Dangi",    
    "status": "Out"
  }

]
Теги:
angularjs-ng-repeat
angular-filters

1 ответ

0

Вы можете использовать объектную нотацию фильтра. Итак | filter:{<propName>:<Value>} | filter:{<propName>:<Value>} для поиска свойств ваших товаров.

Итак, в вашем случае

<div ng-repeat="item in items | filter:{name:by}">

Будет ли фильтр, где object.name содержит свойство области действия by.

https://docs.angularjs.org/api/ng/filter/filter

См. Скрипку в действии http://jsfiddle.net/gfwex7jd/

  • 0
    На самом деле я использовал ng-repeat, чтобы повторить параметры раскрывающегося списка, когда я использую фильтр вашего решения: {name: query}, ни один из параметров раскрывающегося списка не отображается. Я отредактировал вопрос с образцом JSON и выпадающим.
  • 0
    Причина в том, что по умолчанию ng-model = "query" будет нулевым / пустым, поэтому ни один из не отображаемых элементов не отображается, а только поле ввода поиска отображается под выпадающими элементами.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню