vendor/assets/javascripts/angular-resource.js in angularjs-rails-1.2.5 vs vendor/assets/javascripts/angular-resource.js in angularjs-rails-1.2.6

- old
+ new

@@ -1,7 +1,7 @@ /** - * @license AngularJS v1.2.5 + * @license AngularJS v1.2.6 * (c) 2010-2014 Google, Inc. http://angularjs.org * License: MIT */ (function(window, angular, undefined) {'use strict'; @@ -38,11 +38,11 @@ angular.forEach(dst, function(value, key){ delete dst[key]; }); for (var key in src) { - if (src.hasOwnProperty(key) && key.substr(0, 2) !== '$$') { + if (src.hasOwnProperty(key) && key.charAt(0) !== '$' && key.charAt(1) !== '$') { dst[key] = src[key]; } } return dst; @@ -93,11 +93,11 @@ * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in * `actions` methods. If any of the parameter value is a function, it will be executed every time * when a param value needs to be obtained for a request (unless the param was overridden). * * Each key value in the parameter object is first bound to url template if present and then any - * excess keys are appended to the url search query after the `?`. + * excess keys are appended to the url seapph query after the `?`. * * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in * URL `/path/greet?salutation=Hello`. * * If the parameter value is prefixed with `@` then the value of that parameter is extracted from @@ -240,11 +240,11 @@ // we can create an instance as well var newCard = new CreditCard({number:'0123'}); newCard.name = "Mike Smith"; newCard.$save(); // POST: /user/123/card {number:'0123', name:'Mike Smith'} - // server returns: {id:789, number:'01234', name: 'Mike Smith'}; + // server returns: {id:789, number:'0123', name: 'Mike Smith'}; expect(newCard.id).toEqual(789); * </pre> * * The object returned from this function execution is a resource "class" which has "static" method * for each action in the definition. @@ -275,9 +275,38 @@ //u => saved user object //putResponseHeaders => $http header getter }); }); </pre> + + * # Creating a custom 'PUT' request + * In this example we create a custom method on our resource to make a PUT request + * <pre> + * var app = angular.module('app', ['ngResource', 'ngRoute']); + * + * // Some APIs expect a PUT request in the format URL/object/ID + * // Here we are creating an 'update' method + * app.factory('Notes', ['$resource', function($resource) { + * return $resource('/notes/:id', null, + * { + * 'update': { method:'PUT' } + * }); + * }]); + * + * // In our controller we get the ID from the URL using ngRoute and $routeParams + * // We pass in $routeParams and our Notes factory along with $scope + * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes', + function($scope, $routeParams, Notes) { + * // First get a note object from the factory + * var note = Notes.get({ id:$routeParams.id }); + * $id = note.id; + * + * // Now call update passing in the ID first then the object you are updating + * Notes.update({ id:$id }, note); + * + * // This will PUT /notes/ID with the note object in the request payload + * }]); + * </pre> */ angular.module('ngResource', ['ng']). factory('$resource', ['$http', '$q', function($http, $q) { var DEFAULT_ACTIONS = {