0

angular 中的过滤器在教程示例中可以正常工作,但假设我们想使用日期过滤器而不是片段添加发布日期。所以代码看起来像这样:

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

有什么方法可以根据 DOM 值而不是电话对象上的基础数据进行过滤?过滤后的 releaseDate 比实际数据更容易让用户搜索。

4

2 回答 2

1

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

角度服务负责数据和状态(更多但很少用于 DOM 操作)

所以过滤器只对模型数据起作用。当然,您可以创建自己的过滤器来操作 DOM(角度指令的责任),但这不是角度方式。

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

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

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

于 2013-10-31T14:18:54.780 回答
0

非常感谢 Chandermani 教我一个新事物并指出我的一个致命错误。

对你来说,答案是否定的。(第二次阅读后我现在明白你的问题了)

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

请记住,使用角度的重点是使用 MVC 模式......

于 2013-10-31T13:45:44.510 回答