javascript - Angularjs 使用 forEach

标签 javascript angularjs ionic-framework

我正在尝试在我的 angularjs 项目中循环访问来自 Web 服务的数据。我遇到的问题是:

在我的控制台日志中,它显示了每个项目及其信息,但是当我尝试在我的 html 上显示它时,它只显示所有数据的最后一项?

HTML

<ion-item ng-repeat="item in documents">{{item}}</ion-item>

如果我像这样将 id 添加到项目中:

<ion-item ng-repeat="item in documents">{{item.id}}</ion-item>

它只显示与数据相同数量的空格。我认为这表明数据在那里,但没有显示任何字符串值。

JS

.controller('DashCtrl', function($scope, $http) {
    $http.get("http://localhost:15021/Service1.svc/getAllTrucks")
            .success(function(data) {

                var obj = data;
                var ar = [];

                angular.forEach(obj, function(index, element) {

                    angular.forEach(index, function(indexN, elementN) {
                        ar = {id: indexN.QuoteID, quotenum: indexN.QuoteNumber};

                        console.log(ar);
                    });

                    $scope.documents = ar;

                });

                console.log(data);
            })
            .error(function(data) {
                console.log("failure");
            });

我想要完成的是用数据列表填充应用程序。 谢谢。 (如果有什么不明白的请问)

最佳答案

您实际上并没有将每条记录添加到数组中,您只是将迭代项分配给数组。结果,您唯一看到的就是最后一条记录。您可以添加 .push() 以将每个迭代记录添加到数组的末尾。

 var ar = [];

 angular.forEach(obj, function(index, element) {
     angular.forEach(index, function(indexN, elementN) {
         ar.push({id: indexN.QuoteID, quotenum: indexN.QuoteNumber});
     });
 });

 $scope.documents = ar;

此外,您应该在嵌套迭代结束时分配 ar

关于javascript - Angularjs 使用 forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31810445/

相关文章:

javascript - 使用 Node.js 中的删除请求动态从数据库中删除数据

javascript - 如果在带类的有序列表下隐藏 div

javascript - d3.js svg 元素上的 Angular-UI 工具提示

javascript - 何时保证 ng-repeat 中的图像尺寸在 DOM 中可用?

cordova - 声音中声音的声音检测而不是 ionic 中的语音-怎么样?

javascript - html POST 数据未发送

javascript - 开 Jest - 语法错误 : Cannot use import statement outside a module

javascript - django 压缩器缩小错误

ionic-framework - 如何将fab按钮放在div的边缘?

css - ionic 2 loadingController cssClass 不工作