以角度过滤DOM值

时间:2013-10-31 13:32:37

标签: javascript angularjs angularjs-filter

角度过滤器可以在tutorial example中正常工作,但是我们可以说我们想要使用日期过滤器而不是片段添加发布日期。所以代码看起来像这样:

  <ul class="phones">
    <li ng-repeat="phone in phones | filter:query">
      {{phone.name}}
      <p>{{phone.releaseDate | date:'medium'}}</p>
    </li>
  </ul>

有什么办法可以根据DOM值而不是手机对象的底层数据进行过滤?用户搜索过滤后的releaseDate比实际数据更容易。

2 个答案:

答案 0 :(得分:1)

过滤器是具有特定名称约定和格式的服务。

在角度服务中负责数据和state(以及更多但很少用于DOM操作)

因此过滤器仅处理模型数据。当然你可以创建自己的过滤器来操纵DOM(角度指令的责任),但这不是有角度的方式。

因此,要解决您的问题,您需要操纵dom而不是模型数据。

我已经创建了一个关于如何执行此操作的插件:

http://plnkr.co/edit/uol9GQjUsEIN42JzLIC9?p=preview

答案 1 :(得分:0)

很多Chandermani给我一个新的东西并指出了我的致命错误。

对你而言OP,答案是否定的。 (经过第二次阅读后,我现在明白了你的问题)

angular只能对自己的数据“工作”,并且在计算完所有数据之后会渲染它并创建DOM,所以尽管你总是可以创建一个指令过滤器来查询DOM并将数据设置为一个角度obj,这将是一个非常错误的解决方法。

请记住,使用angular的整个要点是使用MVC模式......