【发布时间】:2015-03-23 02:36:59
【问题描述】:
我是 AngularJS 的新手,正在努力解决如何处理从服务器异步获取的数据,然后再将其显示在页面上。
我正在获取的数据是这样的:
"all_colors":[
{"color":"red","quantity":1},
{"color":"green","quantity":11},
{"color":"yellow","quantity":5}
]
当页面最初加载时,我从服务器获取上述数据,如下所示:
angular.module('angularDjangoRegistrationAuthApp')
.controller('DashbordCtrl', function ($scope, djangoAuth, Validate, $location) {
djangoAuth.fetch_from_server().then(function(data){
$scope.model = data;
});
我想在页面上显示两件事:
Available Colors: 3
Total Color Quantity: 17
我可以像这样显示可用的颜色:
Available Colors: {{model.all_colors.length}}
问题
但是如何循环 all_colors 并计算每个颜色的数量,以便我可以显示 Total Color Quantity ?
获取数据后,我似乎无法在我的 JS 文件中执行此操作,因为它是异步获取的。我无法弄清楚如何做到这一点。
【问题讨论】:
-
fetch_from_server()是否返回承诺?你在用$q吗? -
@GeorgeStocker
fetch_from_server()与此文件完全相同github.com/Tivix/angular-django-registration-auth/blob/master/… -
您需要遍历数量的值。 angular.foreach 将对此有所帮助。 docs.angularjs.org/api/ng/function/angular.forEach将它们添加到数组中并返回数组
标签: javascript angularjs asynchronous angularjs-scope