javascript - ng-repeat run 函数为每一行?

标签 javascript angularjs

我有一个 ng-repeat,我需要运行一个函数来为每行获取一些额外的数据/少量计算。

类似这样的事情

<div id="complaintstable">
            <table>                  
                <tr ui-sref="complaints.details({ id: item.Id })" ng-repeat="item in list" class="item" ng-class-odd="'odd'" ng-class-even="'even'" ng-init="rowInit(item)">
                    <td>
                        {{item.ConsumerName}}
                    </td>
                    <td>
                        {{dayspan}}
                    </td>
                    <td>
                        {{item.ConsumerCity}}
                    </td>
                    <td>
                        {{item.Agent.First_Name}} {{item.Agent.Last_Name}}
                    </td>
                    <td>
                        {{compname}}
                    </td>
                    <td>
                        {{item.DateOpenedDisplay}}
                    </td>
                </tr>
            </table>
        </div>

然后在指令 Controller 中

   $scope.rowInit = function (row) {
                  $scope.dayspan = someAJAXCall();
                  $scope.compname = someCalculation();
                  console.log("here");
              }

显然,这样做的问题是 rowInit 在 Controller 范围内进行评估,而在 ng-repeat 范围内没有进行评估,因此 dayspancompname 被覆盖。我将如何在 ng-repeat 范围内评估 rowInit

最佳答案

迭代您的列表并对每一行进行计算,将数据添加到该行,然后在标记中显示 item.compname 和 item.dayspan。

$scope.list.forEach(
    function(item) {
      item.dayspan = someAJAXCall();
      item.compname = someCalc();
    }
);

请注意,大量 AJAX 并发调用是有问题的 - 但这不是您的问题中提出的问题。

关于javascript - ng-repeat run 函数为每一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34076853/

相关文章:

javascript - jQuery 中的多选

javascript - 隐藏滚动时且不在焦点上的元素

javascript - Backbone Collection 获取抛出 id 错误

javascript - 双击使表格单元格可编辑-Angularjs

javascript - 预期的表达式为 '_item_ in _collection_[ track by _id_]' 形式,但得到了

javascript - 输入文件 - 如果未更改,请保留以前的文件

javascript - jQuery 1.8 中的 DOM 插入导致 javascript 触发两次

javascript - 在外部单击时模态关闭(AngularJS——plunker 攻击)

javascript - Angular 保持 Controller 之间的选择并支持路由

javascript - 响应类型 blob 但获取 xml 数据