在 ng-repeat 列表中,我调用一个函数 {{ getDetailedData(id) }} 以用更多数据丰富重复项。在这个函数中,我调用执行异步 $http 调用以获取更多数据。这会导致递归行为:a-sync 函数被称为 infinte。
当我删除异步调用时,该函数只会被调用,因为列表中有项目是重复的来源。
异步调用有一个不错的回调,肯定不会调用原始函数。
需要你对此的想法。
编辑
控制器中的功能:
$scope.getExtraData = function (id) {
sFact.getSpotDetail(id, function (data) {
console.log('getSpotDetail', data);
})
return false;
}
部分重复:
<div class="col-lg-4" style="display: block;" data-ng-repeat="cust in spots | filter: query">
<h2 title="{{ cust.title }}">{{ $index + 1 }} {{ cust.title }}</h2>
{{ getExtraData(cust.id) }}
</div>
异步函数 sFact(ory)
factory.getSpotDetail = function(id, callback) {
var data = 'id=' + id;
$http({
url: "php/get_venue.php",
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
data: data,
method: "POST"
}).success(callback);
}