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

标签 javascript angularjs

过滤器和模板的代码片段如所给出。我无法弄清楚为什么控制台会无限次地出现。

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"> 

使用您的模块引导应用程序。

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

关于javascript - 使用 ng-repeat-start 和 ng-repeat-end 导致过滤器被无限期地调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413409/

相关文章:

javascript - 在 Undefined index PHP 上寻找此错误的解决方案

javascript - 如何在 Kynetx 规则中正确发出 javascript?

javascript - 在网页加载之前预加载图像

javascript - 如何在 AngularJs 中启用 CORS

javascript - 复选框未显示在 md-select multiple 中

angularjs - 屏幕上的 Angular 变化元素高度宽度或高度变化

javascript - 文件上传不适用于 Angular 和 Node.JS

Javascript Canvas 构造不同颜色的路径

php - Html5 联系表 - javascript 和 php 验证问题

angularjs - BreezeJS 离线/在线管理