我一直在尝试使用 angular.js 作为处理可排序和可搜索数据列表的一种方式。
使用此 RailsCast 开始http://railscasts.com/episodes/405-angularjs
然后通过这里的过滤器示例http://docs.angularjs.org/api/ng.filter:filter
当我在几分钟内运行排序和过滤的东西时,我感到很震惊。因此,我似乎有一种理想的方法来呈现表格数据,通过过滤每一列来排序和搜索......
直到我意识到过滤器似乎不适用于使用“。”寻址的 json 嵌套属性。表示法,例如我的客户都有一个所有者,我想显示他们的电子邮件地址并按此字段排序和筛选 - 我的代码的关键部分如下所示。
<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 已呈现并可排序,但不会过滤。我有一个解决方法:每个 :include 关联只允许一个属性并在关联上进行搜索,例如所有者电子邮件上的 search.owner 过滤器,因为这就是我允许进入 json 的全部内容。这感觉就像一个黑客。必须有适当的优雅方式来做到这一点。它是什么?