使用ng-repeat-start和ng-repeat-end导致过滤器被无限期调用

Using ng-repeat-start and ng-repeat-end causing the filter to get called indefinetly

本文关键字:过滤器 无限期 调用 ng-repeat-start ng-repeat-end 使用      更新时间:2023-09-26

过滤器和模板的代码片段如下所示。

我不明白为什么控制台总是出现无数次。
angular.module.filter('sumArrayAttrsFilter', function() {
    return function(sample, propName) {
        console.debug('cp$$$$$$$$$S1::', sample, '::', propName);
        return 99990;
    };
});             

         <table>
            <tbody>
                <tr ng-repeat-start="(key, finData) in {'2014': [{'test': 4}, {'test2': 5}], '2015': [{'test': 4}, {'test2': 5}]} track by key">
                    <td>
                        <div>
                            {{key}}:: {{finData | sumArrayAttrsFilter:'test'}}
                        </div>
                    </td>
                </tr>
                <tr ng-repeat-end>
                    <td>
                        <div>
                            {{key}}:: {{finData | sumArrayAttrsFilter:'test2'}}
                        </div>
                    </td>
                </tr>
            </tbody>
        </table>

似乎对我有用。试试这个方法。

var app = angular.module('myApp', []);
app.filter('sumArrayAttrsFilter', function() {
return function(sample, propName) {
    console.debug('cp$$$$$$$$$S1::', sample, '::', propName);
    return 99990;
};
HTML

<div ng-app="myApp">
    <table>
        <tbody>
            <tr ng-repeat-start="(key, finData) in {'2014': [{'test': 4}, {'test2': 5}], '2015': [{'test': 4}, {'test2': 5}]} track by key">
                <td>
                    <div>
                        {{key}}:: {{finData | sumArrayAttrsFilter:'test'}}
                    </div>
                </td>
            </tr>
            <tr ng-repeat-end>
                <td>
                    <div>
                        {{key}}:: {{finData | sumArrayAttrsFilter:'test2'}}
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
  </div>

中对myApp模块的引用
 <div ng-app="myApp"> 

使用你的模块引导应用。

这里是链接[link] http://plnkr.co/edit/1TQsn2NujRB1ojuurVOd?p=preview