仅使用一个字段的下拉菜单进行过滤

时间:2015-03-27 17:41:13

标签: angularjs filter

我是AngularJs的初学者。我尝试使用下拉菜单仅按一个字段过滤数据:

<select ng-model="annee"  ng-options="annee.titre for annee in annees track by annee.id">

</select>
<ul>

  <li ng-repeat="x in accueils | filter:annee" > 
    {{x.titre}}
    <div  ng-bind-html="x.description  | to_trusted"></div> 
    {{x.date}}
    {{x.cout}} $
    {{x.participants}} participants

  </li>
</ul>

在每个x中,有一个字段&#34; annee&#34;,我想按此字段过滤。

对于一个工作示例:http://plnkr.co/edit/MbfrhdKfbTObybsQvxrR?p=preview

现在的问题是,当我在下拉列表中选择一个选项时,我丢失了所有数据,过滤器无效。

你能帮帮我吗?

由于

1 个答案:

答案 0 :(得分:2)

这是plunker

事情就像在你的选择中一样,你正在选择完整的对象: -

例如: -  如果您选择“2015-2016”,您将在$ scope.annee中获得{“titre”:“2015-2016”,“id”:3}。

所以,在过滤器中你需要搜索过滤器:{annee:annee.id},这意味着在找到具有anneed.id的accueils中的annee(这是来自模型)。

<li ng-repeat="x in accueils | filter:{annee:annee.id}" > 
    {{x.titre}}
    <div  ng-bind-html="x.description  | to_trusted"></div> 
    {{x.date}}
    {{x.cout}} $
    {{x.participants}} participants

  </li>