對不起,如果問題是從標題有點抽象。我會試着在這裏解釋它並提供一份帶有相關代碼的Gist。Angularjs:訪問範圍可變陣列,並計算平均
我有一個JSON API,它通過我搶AngularJS。這基本上是一個有幾項任務的項目。我想完成我的$ scope.projects變量(在我的項目控制器中)中的任務,並獲取每個任務中的所有'progress'值。然後我想計算它們的平均值以給出項目本身的整體進度並將其分配給$ scope變量以用於我的模板。
我不能似乎得到訪問的任務陣列無論我怎麼努力,我不知道爲什麼。所以我想在這裏問一些建議可能是一個不錯的選擇。任何幫助將不勝感激。
要點:https://gist.github.com/Tasemu/8002741
JS
App.controller('ProjectCtrl', ['$scope', 'Project', 'Task', '$routeParams', '$location', function($scope, Project, Task, $routeParams, $location) {
$scope.updateProjects = function() {
if (!$routeParams.id) {
Project.query(function(data) {
$scope.projects = data;
});
} else {
$scope.projects = Project.get({id: $routeParams.id})
}
};
$scope.deleteProject = function(project) {
Project.delete({id: project.id}, function() {
$scope.updateProjects({id: project.id});
$location.path('/');
});
};
$scope.deleteTask = function(task) {
Task.delete({id: task.id}, function() {
$scope.updateProjects({id: task.id});
});
};
$scope.updateProject = function(formData) {
$scope.projects.name = formData.name;
$scope.projects.description = formData.description;
$scope.projects.client = formData.client;
$scope.projects.due = formData.due;
$scope.projects.$update({id: formData.id}, function() {
$location.path('/');
});
};
$scope.saveProject = function(project) {
Project.save({}, project, function() {
$location.path('/');
});
};
$scope.updateProjects();
$scope.progs = [];
for (var i = 0; i > $scope.projects.tasks.length; i++) {
progs.push($scope.projects.tasks.array[i].progress);
};
}]);
JSON
{
id: 1,
name: "Project 1",
description: "this project",
client: "monty",
due: "2013-12-15",
tasks: [
{
id: 2,
name: "Task 2",
progress: 22,
project_id: 1,
created_at: "2013-12-17T03:08:53.849Z",
updated_at: "2013-12-17T05:06:31.602Z"
},
{
id: 1,
name: "Task 1",
progress: 75,
project_id: 1,
created_at: "2013-12-17T03:08:53.845Z",
updated_at: "2013-12-17T05:25:50.405Z"
}
],
created_at: "2013-12-17T03:08:53.719Z",
updated_at: "2013-12-17T06:57:52.699Z"
}
JS
App.factory('Project', function($resource) {
return $resource(
'/api/v1/projects/:id.json',
{id: '@id'},
{
update: {
method: 'PUT',
params: { id: '@id' },
isArray: false
}
}
);
});
如果您需要了解更多信息,請不要猶豫,問!
Project.query()的源代碼在哪裏?它使用$ http? – pinoyyid
你是如何訪問它的? – kubuntu
計算平均值的代碼在哪裏? – Sangram