It's been a long chapter, but we are almost done! We now need to incorporate this API into our AngularJS controller and service. Actually, we only need a small addition to the service, a small change to the controller, and no changes at all to the view.
First, in our service static/js/todo_list.js
, we'll need to add a method to handle toggleDone
:
'use strict'; // define the model to handle the data var TodoList = function ($http) { // ... same as before ... // the new method store.toggleDone = function(id) { return $http.post('/api/v1/todos/' + id + '/toggle_done').then(returnTodos); } return store; };
In static/js/todo_list_controller.js
, we'll change the $scope.toggleDone
method to use this new TodoList.toggleDone
method:
$scope.toggleDone = function(todo) { TodoList.toggleDone(todo.id).then(function(todos){ $scope.todos = todos; }); }
That's it! We're ready for the grand finale. Let's run all of our specs and features at once:
It all works...