即使过滤器参数不更改,也调用了角滤波器



我们有一个Angular 1.6滤波器,该滤波器一直在启动。

HTML看起来像:

  <div class="row" ng-repeat="(promptId, q) in (categoryDoubleFiltered = (categoryFiltered | 
    custom:searchText:selectAllCheckbox:answeredCheckbox))">

因此,有3个参数传递给过滤器=>

searchText:selectAllCheckbox:answeredCheckbox

这是过滤器:

app.filter('custom', function () {
  return function (input, search, selectAllCheckbox, selectAnswered) {
       console.log('filter is invoked!');
       // do our filtering thing
      // return some subset of input
   };
});

在我们的html中,(promptid,q(键/值,我们有标准的 ng-modelng-click东西。但是我不明白为什么要调用过滤器,除非更改过滤器的输入之一!当我们悬停在<a>标签上时,甚至会调用过滤器。

什么到了?我们该怎么做才能阻止它被称为太多?

,除非您使用的是原语,否则过滤器将每$摘要多次发射。在这种情况下,看来您正在运行无限的摘要。您可以通过使用此验证来查看是否确实在运行不间断的摘要:

var digestCount = 0;
$rootScope.$watch(function() {
  digestCount++;
  console.log(digestCount);
});

我建议您追踪无限摘要的原因,并将其修复以使您的过滤器正常工作。

也可以帮助我们诊断。

相关内容

  • 没有找到相关文章

最新更新