我正在尝试在我的 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/