AngularJS - 可以过滤变异结果吗?

时间:2013-04-11 14:05:10

标签: angularjs angularjs-ng-repeat

是否可以过滤到mutate过滤器的结果? 假设我想编写一个实际上会在上一个列表中添加内容的过滤器

module.filter('family',function(){
  return function(data,expand){
    var people = [];
    data.forEach(function(child){
      people.push(child);
      // here add something extra
      if (expand){
        // the problem here I just want to demonstrate is that I have to 
        // generate the father and mother on the fly.
        people.push(angular.$copy(child.father,{}));
        people.push(angular.$copy(child.mother,{}));
      }
    });
    return people;
  }
});

我接下来要做的是:

<ul>
  <li ng-repeat="person in children|faimly:true">
    {{person.name}}
  </li>
</ul>

这样做是否安全?我担心这会导致多个$digest()$apply()

修改

这里可能存在的主要问题是,我必须每隔时间返回同一个对象(因为$watch会比较===,而afaik至少有2 $digest继续第一次渲染)。因此我不能generate过滤器中的对象 - 会导致无限循环。我是对的吗?

过滤器中有generate额外结果的选项吗?我可以以某种方式缓存它们,或者通过角度来认为它们是相同的吗?

0 个答案:

没有答案