我有以下使用ng-repeat来显示博客文章:
data-ng-repeat="post in posts | filter: {category: filterCategory} | limitTo:12 ">
'filterCategory'是一个范围变量,我通过点击一组列表项来更改:
<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/)重现,但没有成功。它在这个小提琴中工作正常,而在我的应用程序中它需要更长时间。我不知道它是否有所作为,但在我的应用程序中,我从资源加载帖子,而在小提琴中它们是静态声明的。
答案 0 :(得分:-2)
如果问题在于延迟范围,请尝试使用此方法。
$scope.setFilterCategory = function(id) {
$scope.$apply(function(){
$scope.filterCategory = id;
});
}
如果您仍然看到问题,可以创建plunker或JSfiddle或任何