将Angular.js FilterBy应用于嵌套的json属性

时间:2013-03-26 18:16:16

标签: ruby-on-rails-3 angularjs

我一直在尝试使用angular.js来处理可排序和可搜索的数据列表。

使用此RailsCast开始http://railscasts.com/episodes/405-angularjs

然后通过这里的过滤器示例http://docs.angularjs.org/api/ng.filter:filter

当我在分钟排序和过滤时运行时,我感到非常震惊。因此,我似乎有一种理想的方法来呈现表格数据,这些数据可以通过在每列中进行过滤来进行排序和搜索......

直到我意识到过滤器似乎不适用于使用'。'解决的json嵌套attrbutes。符号,例如我的客户都有一个所有者,我想显示他们的电子邮件地址,并按此字段进行排序和筛选 - 我的代码的关键部分看起来像这样。

<tbody ng-repeat="client in clients | orderBy:sort_by:reverse | filter:search">
  <tr>
     <td>{{name}}</td>
     <td>{{owner.email}}</td>
  <tr>

<input ng-model="search.name">
<input ng-model="search.owner.email">

owner.email已呈现并可进行排序,但不会过滤。我有一个解决方法:只允许每个属性:包括关联和搜索关联,例如search.owner过滤了所有者的电子邮件,因为这是我允许进入json的全部内容。这感觉就像一个黑客。必须有适当优雅的方式来做到这一点。它是什么?

1 个答案:

答案 0 :(得分:1)

如上面的评论中所述,您可能必须使用custom filter。自定义过滤器可以根据search.owner.email或您想要的任何其他条件/输入进行过滤。