过滤angularjs中的多个值(来自输入部分)

时间:2015-06-22 02:38:59

标签: angularjs

从官方文档中我从angular js filter API学到的东西,我看到过这样的东西。



<label>Any: <input ng-model="search.$"></label> <br>
<label>Name only <input ng-model="search.name"></label><br>
<label>Phone only <input ng-model="search.phone"></label><br>
<label>Address only <input ng-model="search.address"></label><br>

<ul>
  <li ng-repeat="contact in contacts | filter:search>
      {{contact.name}}, {{contact.phone}}...
  </li>
</ul>
&#13;
&#13;
&#13;

现在,假设我想添加一个新输入,用户只能搜索名称和电话,并保留以前的输入搜索,我该怎么办。实施后的意思是我将有五个搜索输入,用户可以通过任何搜索输入,仅限姓名,仅限电话,仅限地址或姓名或电话进行搜索。五个搜索输入必须是可见的并且对用户可用,并且不能被禁用。

请忽略这样做是否合乎逻辑并假设这是一个明确的要求。

我希望会有这样的事情,但它不会起作用

&#13;
&#13;
<label>Any: <input ng-model="search.$"></label> <br>
    <label>Name only <input ng-model="search.name"></label><br>
    <label>Phone only <input ng-model="search.phone"></label><br>
    <label>Address only <input ng-model="search.address"></label><br>
    <label>Name or phone only <input ng-model="search.name || search.phone"></label><br>

    <ul>
      <li ng-repeat="contact in contacts | filter:search>
          {{contact.name}}, {{contact.phone}}...
      </li>
    </ul>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

如果您的过滤器处于搜索状态,您可以创建一个搜索名称或电话输入字段的新属性吗?所以你可以这样做:

<label>Name or phone only <input ng-model="search.nameOrPhone"></label>

或者它必须是search.name / search.phone吗? 根据输入实现分配到search.name / search.phone是非常狡猾的,但是可以做到。你可以创建一个ng-change函数,用reg-ex检查输入,然后分配search.name或search.phone。