2

我有以下使用 ng-repeat 来显示博客文章:

data-ng-repeat="post in posts | filter: {category: filterCategory} | limitTo:12 ">

'filterCategory' 是一个范围变量,我通过 ng-click 更改一组列表项:

<li class="filter" ng-repeat="post in (posts | unique: 'category._id' )" ng-click="setFilterCategory(post.category._id)">

由以下控制:

 $scope.setFilterCategory = function(id) {
        $scope.filterCategory = id;
 }

问题是,当用户单击其中一个列表项并setFilterCategory()更改范围内的filterCategory时,会显示所有帖子(好像没有过滤器一样),然后应用过滤器。我想避免这种过渡,直接从前一个过滤器转到下一个过滤器。有什么我可以做的吗?

我认为这与摘要周期有关,但我没有足够的经验来准确说明我应该改变什么,如果有的话。

编辑#1:
我试图在小提琴中重现(http://jsfiddle.net/igorauad/w4mkny0e/),但没有成功。它在这个小提琴中工作正常,而在我的应用程序中它需要更长的时间。我不知道它是否有区别,但在我的应用程序中,我从资源加载帖子,而在小提琴中它们是静态声明的。

4

1 回答 1

-2

如果您的问题与延迟范围有关,请尝试此操作。

 $scope.setFilterCategory = function(id) {
      $scope.$apply(function(){
        $scope.filterCategory = id;
      });
 }

如果您仍然看到问题,您可以创建 plunker 或 JSfiddle 或任何

于 2014-08-26T05:18:11.947 回答