我有一个 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
范围内没有进行评估,因此 dayspan
和compname
被覆盖。我将如何在 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/