angular执行ng-repeat中的函数不止一次

时间:2014-12-19 17:46:55

标签: javascript angularjs angularjs-ng-repeat

我通过ng-repeat-start(-end)迭代列表中的元素。我正在尝试根据类型动态地向图标添加类。问题是getClass(...)中的代码似乎多次被执行。

这是HTML。

<li style="display:none;" data-ng-repeat-start="entry in entries"></li>
<li>
  <i class="fa" data-ng-class="getIconClass(entry)"></i>
  <span data-ng-bind="entry.name"></span>
</li>
<li style="display:none;" data-ng-repeat-end></li>

这是控制器功能。

$scope.getIconClass = function(entry) {
    console.log('In getIconClass()');
    if(entry.type === 'SYSTEM') {
        return 'fa-laptop';
    } else {
        return 'fa-user';
    }
}

当循环执行时,console.log('In getIconClass()')打印出列表中条目数量的两倍(2个条目4次,4个条目8次等)。

有关为何会出现这种情况的任何想法?传递整个实体并在属性中调用会导致范围被重新评估,因此,视图会因某种原因重新呈现吗?

感谢。

0 个答案:

没有答案