<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-cookies.js"></script> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-animate.js"></script> <script src="/static/papa.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> <link rel="stylesheet" href="/static/styles.css"> </head> <body> <div ng-app="DatApp" ng-controller="DatAppController" ng-cloak class="container"> <div class="row"> <form class="well"> <div class="form-group"> <button class="btn btn-primary" ng-click="save();">Save</button> <button class="btn btn-primary" ng-click="load();">Load</button> </div> </form> </div> <div class="row"> <form ng-submit="add();" class="well"> <div class="form-group"> <label>name</label> <input class="form-control" type="text" ng-model="currentName"> </div> <div class="form-group"> <button class="btn btn-primary">new one</button> </div> </form> </div> <div class="row"> <ul class="list-group"> <li class="list-group-item" ng-repeat="member in members"> <span>name:</span><strong ng-bind="member.name"></strong> <button class="btn btn-danger" ng-click="remove(member);">remove</button> </li> </ul> </div> </div> <script> var DatApp; DatApp = angular.module("DatApp", []); DatApp.controller("DatAppController", ["$scope", "$http", function(inScope, inHTTP){ inScope.currentName = "name"; inScope.randomize = function(){ inScope.message = Math.random(); }; inScope.members = []; inScope.add = function(){ inScope.members.push({ name: inScope.currentName, id: Math.floor(Math.random()*10000000) }); }; inScope.remove = function(inMember){ var i; for(i=0; i<inScope.members.length; i++) { if(inScope.members[i] === inMember){ inScope.members.splice(i, 1); return; } } }; inScope.save = function(){ inHTTP({ method:"POST", url:"/data", data:inScope.members }) .then(function(inSuccess){ console.log("done") }, function(inFailure){ console.log(inFailure); }); }; inScope.load = function(){ inHTTP({ method:"GET", url:"/data" }) .then(function(inSuccess){ inScope.members = inSuccess.data; console.log("done"); }, function(inFailure){ console.log(inFailure); }); }; }]); </script> </body> </html>