Javascript 如何在angularjs中读取对象数组的长度?

Javascript 如何在angularjs中读取对象数组的长度?,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我正在制作一个仪表板来显示我的系统从数据库中带来的项目的简历。我用的是卑鄙的手段 我想知道,如何读取对象数组的长度以将数字作为参数传递给图表 我的角度层中有这样的对象: 我的角度控制器如下所示: $scope.projects = Projects.query(); $scope.users = Users.query(); $scope.tasks = Tasks.query(); $scope.numberOfTasks = $scope.users.length; 而且.length对

我正在制作一个仪表板来显示我的系统从数据库中带来的项目的简历。我用的是卑鄙的手段

我想知道,如何读取对象数组的长度以将数字作为参数传递给图表

我的角度层中有这样的对象:

我的角度控制器如下所示:

$scope.projects = Projects.query();
$scope.users = Users.query();
$scope.tasks = Tasks.query();
$scope.numberOfTasks = $scope.users.length;
而且
.length
对我不合适!始终返回
2
。我尝试使用
console.log(object.keys($scope.tasks)),查看对象的键,并返回
[“$PROMITE”,“$RESOLEDED”]


有人可以帮忙吗?

您可以使用相同的
$scope.projects.length
来获取数组的大小
$scope.projects
,就像您使用
$scope.numberOfTasks=$scope.users.length

Array.length是JS中可用于任何数组的属性-

由于您的
query()
是一个AJAX调用,您需要处理此调用,在成功承诺或回调中,您可以获得如下长度-

    Projects.query().then(function(res){

        var projectLength = res.length;
        $scope.numberOfTasks = projectLength;

    }, function(err){// handle error here });

您也可以对其他
query()
函数执行相同的操作。

它应该是myobject.length您可以使用
$scope.projects.length
它不适合我!始终返回
2
。我尝试使用
console.log(object.keys($scope.tasks)),查看对象的键
,并返回
[“$promise”,“$resolved”]
,因为根据图像,您的项目有两个对象。这似乎是您的
query()
方法是一个AJAX调用???这对我不管用!始终返回
2
。我尝试使用
console.log(object.keys($scope.tasks)),查看对象的键
,并返回
[“$promise”,“$resolved”]
Aha,现在我们讨论:)问题不在于数组长度,而是promises的工作方式。请检查@Chandan answer,这是关于它返回了这个错误
TypeError:Projects.query(…)。然后不是一个函数
(对不起,如果我是noob,我只是在学习)我正在使用
query()
ngResource
模块中的
,您可以尝试上面的一个。。。让我知道代码:
$scope.projects=projects.query().$promise.then(函数(res){var projectLength=res.length;$scope.projectsLength=projectLength;},函数(err){});console.log($scope.projectsLength)
在控制台中返回
未定义
您需要将日志放入函数
函数(res){var projectLength=res.length;$scope.projectsLength=projectLength;console.log(projectLength)}
中,如下所示。