Вложенные поля ngTable

Я видел этот вопрос, и решение было довольно простым, однако этот плункер не работает с Angular 1.33, который я использую в своем проекте.

Вот тот же плункер с проблемой (только Angular обновлен до версии 1.33).

HTML

  <table ng-table="tableParams" show-filter="true" class="table">
    <tr class='listing' ng-repeat="invoice in $data">
      <td data-title="'Invoice No.'" sortable="'no'" filter="{'no':'text'}">
        {{invoice.no}}
      </td>
      <td data-title="'Date'" sortable="'date'" filter="{'date':'text'}">
        {{invoice.date}}
      </td>
      <td data-title="'Client'" sortable="'client.fullname'" filter="{'client.fullname':'text'}">
        {{invoice.client.fullname}}
      </td>
    </tr>
  </table>

person Walid Ammar    schedule 24.11.2014    source источник
comment
Если вы удалите .fullname из фильтра, он будет использовать все свойства объекта (я думаю), который работает. Это вызовет у вас другие проблемы?   -  person DoctorMick    schedule 24.11.2014
comment
@DoctorMick Я знаю это ... но мне нужно, чтобы столбец full_name можно было сортировать, а не только искать ... также, если я удалю свойство, я не смогу выполнять поиск в нескольких полях во вложенном объекте user.   -  person Walid Ammar    schedule 24.11.2014
comment
Похоже, что синтаксис фильтра был изменен, чтобы использовать правильную нотацию JSON: github.com/angular /angular.js/issues/6222. Я предполагаю, что ngTable не был обновлен соответствующим образом.   -  person DoctorMick    schedule 24.11.2014
comment
да, я так думаю.. пунктирная строка неправильно анализируется   -  person Asik    schedule 24.11.2014
comment
stackoverflow.com/a/26741658/4104866 посмотрите, ngtable вообще не анализирует точку   -  person Kostia Mololkin    schedule 24.11.2014
comment
хм, но, как он сказал в вопросе, это нормально работает в старой версии 1.2.x   -  person Asik    schedule 24.11.2014
comment
plnkr.co/edit/CAnuwofI4J1ZshqVrtA5?p=preview посмотрите, как это работает в версии 1.2 x, но фильтр настроен без точек   -  person Kostia Mololkin    schedule 24.11.2014
comment
Вы не можете настроить фильтр через prop.prop:text   -  person Kostia Mololkin    schedule 24.11.2014
comment
@KostiaMololkin спасибо ... это было предложено в предыдущем комментарии, к сожалению, если я это сделаю, я не смогу сортировать по этому столбцу; я?   -  person Walid Ammar    schedule 24.11.2014
comment
@MohammadWalid, ты можешь сортировать, но ты должен сделать свой собственный шаблон заголовка   -  person Kostia Mololkin    schedule 24.11.2014
comment
@MohammadWalid, я ошибаюсь, тебе не нужен шаблон, посмотри ответ, он тебе подходит?   -  person Kostia Mololkin    schedule 24.11.2014


Ответы (1)


работа с сортировкой и фильтрацией,ngtable 0.3.1 – вставить

<table ng-table="tableParams" show-filter="true" class="table">
    <tr class='listing' ng-repeat="invoice in $data">
      <td data-title="'Invoice No.'" sortable="'no'" filter="{'no':'text'}">
        {{invoice.no}}
      </td>
      <td data-title="'Date'" sortable="'date'" filter="{'date':'text'}">
        {{invoice.date}}
      </td>
      <td data-title="'Client'" sortable="'client.fullname'" filter="{'client':'text'}">
        {{invoice.client.fullname}}
      </td>
    </tr>
  </table>
person Kostia Mololkin    schedule 24.11.2014
comment
Спасибо Kositia, ваше решение работает, как и ожидалось... но я надеюсь, что есть возможность фильтровать по нескольким вложенным полям... пока этого мне достаточно... еще раз спасибо. - person Walid Ammar; 25.11.2014
comment
@MohammadWalid, я рад помочь, поэтому вы хотели бы отфильтровать все реквизиты клиентского объекта, верно? Мне это тоже интересно, я проведу небольшое исследование и вернусь))) - person Kostia Mololkin; 25.11.2014