Ъглов ng-повтарящ се филтър

въведете описание на изображението тукОпитвам се да филтрирам данните от таблицата си въз основа на въведения текст, но някак си не работи . Моля, помогнете.

  <div class="panel panel-default">
   <div class="panel-heading">search
    <input type="text" ng-model="search_text">
    Searching for :: {{search_text}}
   </div>  
  <Table>   
  <table class="table table-hover table-bordered">
    <tr>
        <td>Item ID</td>
        <td>Quantity</td>       
    </tr>
    <tr ng-repeat="item in items | filter:search_text">
        <td>{{item.item[0] }}</td>
        <td>{{item.item[1] }}</td>
    </tr>
 </table>
 </div>

person MGA    schedule 17.07.2015    source източник
comment
можете ли да ни покажете обекта (артикулите) ,,   -  person Ahmed Eid    schedule 17.07.2015
comment
Моля, покажете ни как са структурирани вашите данни.   -  person Matt Herbstritt    schedule 17.07.2015
comment
някакви грешки в конзолата? Вашият код изглежда правилен   -  person nalinc    schedule 17.07.2015
comment
добавих моята структура на данни по-горе (използвайки firebase) и няма грешка в конзолата   -  person MGA    schedule 17.07.2015
comment
Какво не работи?   -  person Dan    schedule 17.07.2015
comment
@MGA, получаваш ли неправилен резултат или получаваш грешка в конзолата. това трябва да е много просто, ако кажете точно? очакване   -  person immirza    schedule 17.07.2015
comment
@immirza, изглежда, че филтърът работи само с масив, а не с обекти, както споменах структурата по-горе (версия 1.3 X не извежда никаква грешка в конзолата, но 1.4X казва, че очаква масив   -  person MGA    schedule 18.07.2015


Отговори (2)


Моля, проверете за версията на вашия angularjs, която използвате, или за грешки в конзолата.

Вашият код изглежда работи и наистина е правилен.

  //array of items containing itemID and its quantity
  $scope.items = [{
                    item:['chair',45]
                  },
                  {
                    item:['bed',23]
                  },
                  {
                    item:['laptop',8]
                  }]

Ето работещия plunkr

Данните в таблицата наистина се филтрират по отношение на стойността, която въвеждате в текстовото поле

person nalinc    schedule 17.07.2015

От Angular 1.1.3 можете да използвате:

<tr ng-repeat="item in items | filter:{item[0]: search_text}">

Това ще го сравни със свойството на обекта item[0] във вашия обект. Ако искате точното съвпадение, можете да зададете филтрирането на true, като добавите:

<tr ng-repeat="item in items | filter:{item[0]: search_text}:true">
person willedanielsson    schedule 17.07.2015
comment
Всъщност, когато актуализирах моята версия на angular от 1.3 на 1.4.3, тя извежда грешка като Грешка: [filter:notarray] Очакван масив, но получен: {-JuQxmosAMBeQitsYevP:{item:[chair,5]},-JuQxoG04-WFcrLR5D6G:{ item:[Bed,10]},-JuQxrGLi8O8vZjyQ87O:{item:[Laptop,2]},$id:items,$priority:null} ... така че как мога да запазя данните си като масив във firebase? - person MGA; 17.07.2015