在ng-repeat中使用$ http.get会导致多个错误

时间:2016-08-18 12:01:43

标签: javascript angularjs

我有一个函数,它按组ID返回一个项目数组。这是:

var getChoices = function (groupId) {
    var request = $http.get(_baseUrl + 'choice', { params: { choiceGroupId: groupId } });

    return request.then(function(result) {
        if (resources.ok(result)) {
            return result.data.items;
        }
    }, function(error) {

    });
}

当我将它绑定到按钮时,它工作正常,但是当我尝试对此函数进行ng-repeat时,我在浏览器控制台中出现了多个错误。

<md-list>
    <md-list-item ng-repeat="choice in getChoices(choiceGroupId)">
        {{choice}}
    </md-list-item>
</md-list>

我也试过这个,但结果是一样的。

<md-list ng-init="choices = {{getChoices(choiceGroupId)}}">
    <md-list-item ng-repeat="choice in choices">
        {{choice}}
    </md-list-item>
</md-list>

我已经看到了这样的问题的答案,但有人建议在控制器中发出请求,然后用数据填充数组,并迭代数组值,但这不适合我的情况因为我需要{来自UI方面的{1}}。

似乎浏览器尝试在每个tick上评估get请求,并发生类似溢出的事情。我如何处理这个来调用'get'一次然后迭代返回的结果?

1 个答案:

答案 0 :(得分:2)

检查您的选择变量是否具有重复值,如果是,请尝试下面的代码

{{1}}