将对象添加到ng-repeat时,不应用过滤器

时间:2014-08-16 15:03:34

标签: angularjs angularjs-directive angularjs-filter

我有一个ng-repeat,其中包含重复列表中某个项目的过滤器。过滤器工作正常,除非我向ng-repeat ed数组添加项目。 ng-repeat看起来像这样:

<div ng-repeat="post in posts">
    <div>{{post.created | formatTimestamp}}</div>
    <div>{{post.message}}</div>
</div> 

formatTimestamp过滤器肯定有用,可能在这里列出的时间太长,所以我会省略它。我遇到的问题是,当用户发布新帖{I} unshift新帖子到posts数组时。帖子按预期显示,但formatTimestamp过滤器不适用。当我刷新页面时,过滤器确实有效。关于unshift新帖子的内容会阻止过滤器应用。我尝试使用scope.$digest(),但这并没有解决问题。新帖子的处理在指令内部,如下所示:

// store the new post in the database, etc.
scope.posts.unshift(data);
scope.$digest(); // didn't have any effect

关于我做错的任何想法?

1 个答案:

答案 0 :(得分:0)

如果没有错,你想以相反的顺序打印列表(即最后一个条目在顶部)?
您是否尝试按照here所述的反向顺序打印列表,并使用scope.posts.push(data)添加新条目。

也许是一种解决方法但如果您认为unshift是一个问题,那么您可以尝试一下。
为了更好的调试,我希望看到更多的代码