Angularjs 在angular中使用$scope.$digest()或$scope.$apply()的替代方法

Angularjs 在angular中使用$scope.$digest()或$scope.$apply()的替代方法,angularjs,Angularjs,我有一个范围变量,其中包含一系列文章(JSON对象) 物品具有这些属性 { "title": "ABCD", "type": "XYZ" } 我使用JS的过滤方法,根据文章类型过滤scope变量$scope.mainArticles $scope.mainArticles = $scope.mainArticles.filter(filterByTypeFunction); 但是,即使scope变量已更改,我的DOM也不会更新。在这种情况下,有什么方法可以避免使用$scope.$dig

我有一个范围变量,其中包含一系列文章(JSON对象)

物品具有这些属性

{
 "title": "ABCD",
 "type": "XYZ" 
}
我使用JS的过滤方法,根据文章类型过滤scope变量
$scope.mainArticles

$scope.mainArticles = $scope.mainArticles.filter(filterByTypeFunction);
但是,即使scope变量已更改,我的DOM也不会更新。在这种情况下,有什么方法可以避免使用
$scope.$digest()
$scope.$apply()


我不想使用它们,因为有很多答案建议不要使用它们。

更好的方法是在服务器上筛选文章
您不希望一次加载所有文章,然后对其进行筛选

$scope.mainArticles=$scope.mainArticles.filter(filterByTypeFunction)-这叫什么?你能显示更多的代码吗?你能添加问题的fiddle/plunkr吗?没有“不要使用$digest()/$apply()”这样的规则,因为它取决于触发摘要是必需的还是不需要的情况。你的情况是什么?实际上我需要提前加载所有文章,因为默认情况下没有过滤器。所以,一旦我有了客户端上的所有文章,为什么不直接过滤它呢?如果你没有分页,那么就可以了,但是有了分页,你客户端上的过滤器将工作得很奇怪,因为你将只过滤一个页面,不管是否有过滤器,或者如果用户选择了它,加载你过滤(或不过滤)的文档从服务器端分页,如果你有很多文章,你会遇到诸如出游超时等问题
$scope.mainArticles = $scope.mainArticles.filter(filterByTypeFunction);