From dbdefaaad43746baf5d64cbf2ff79dce33ae1c97 Mon Sep 17 00:00:00 2001 From: James Churchill Date: Tue, 1 Mar 2016 18:32:25 -0800 Subject: [PATCH] Updated the Angular app to create and update data --- app/scripts/controllers/todo.js | 8 +++++++- app/scripts/services/data.js | 19 +++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/scripts/controllers/todo.js b/app/scripts/controllers/todo.js index 6eaeb08..86b08b7 100755 --- a/app/scripts/controllers/todo.js +++ b/app/scripts/controllers/todo.js @@ -13,9 +13,15 @@ function TodoCtrl ($scope, dataService) { return todo }; }) - dataService.saveTodos(filteredTodos); + dataService.saveTodos(filteredTodos) + .finally($scope.resetTodoState()); }; + $scope.resetTodoState = function() { + $scope.todos.forEach(function(todo) { + todo.edited = false; + }); + } } module.exports = TodoCtrl; diff --git a/app/scripts/services/data.js b/app/scripts/services/data.js index d7319a2..a8c068b 100755 --- a/app/scripts/services/data.js +++ b/app/scripts/services/data.js @@ -1,6 +1,6 @@ 'use strict'; -function DataService ($http) { +function DataService ($http, $q) { this.getTodos = function(cb) { $http.get('/api/todos').then(cb); @@ -11,7 +11,22 @@ function DataService ($http) { }; this.saveTodos = function(todos) { - console.log("I saved " + todos.length + " todos!"); + var queue = []; + todos.forEach(function(todo) { + var request; + if(!todo._id) { + request = $http.post('/api/todos', todo); + } else { + request = $http.put('/api/todos/' + todo._id, todo).then(function(result) { + todo = result.data.todo; + return todo; + }); + } + queue.push(request); + }); + return $q.all(queue).then(function(results) { + console.log("I saved " + todos.length + " todos!"); + }); }; }