aboutsummaryrefslogtreecommitdiffstats
path: root/src/ngResource/resource.js
AgeCommit message (Collapse)Author
2013-11-14docs(ngResource): removed buzz client exampleJeff Cross
The Buzz Client example on the ngResource doc was causing parse errors. While the root cause is being investigated, the example has been removed, and should be replaced by a more relevant example anyhow.
2013-11-14docs(resource): fix grammatical issuemkolodny
'Case' should be the plural 'cases' since it is talking about multiple possible cases rather than a single case. For slightly more info, see the section 'When words like "none" are the subject' in this article: http://writing.wisc.edu/Handbook/SubjectVerb.html
2013-11-11fix($resource): don't use $parse for @dotted.memberChirayu Krishnappa
params and paramDefaults support looking up the parameter value from the data object. The syntax for that is `@nested.property.name`. Currently, $resource uses $parse to do this. This is too liberal (you can use values like `@a=b` or `@a | filter` and have it work - which doesn't really make sense). It also puts up a dependency on $parse which is has restrictions to secure expressions used in templates. The value here, though a string, is specified in Javascript code and shouldn't have those restrictions.
2013-10-27docs($resource): fix typoJarrett Harris
Closes #4670
2013-10-23chore(docs): fix jsHint errors with long linesMatias Niemelä
2013-10-23feat(docs): provide index pages for each angular moduleMatias Niemelä
2013-10-22style: make jshint happyVojta Jina
2013-10-18docs: correct broken linksVojta Jina
This also contains some whitespace corrections by my editor.
2013-10-07fix(*): protect calls to hasOwnProperty in public APIPeter Bacon Darwin
Objects received from outside AngularJS may have had their `hasOwnProperty` method overridden with something else. In cases where we can do this without incurring a performance penalty we call directly on Object.prototype.hasOwnProperty to ensure that we use the correct method. Also, we have some internal hash objects, where the keys for the map are provided from outside AngularJS. In such cases we either prevent `hasOwnProperty` from being used as a key or provide some other way of preventing our objects from having their `hasOwnProperty` overridden. BREAKING CHANGE: Inputs with name equal to "hasOwnProperty" are not allowed inside form or ngForm directives. Before, inputs whose name was "hasOwnProperty" were quietly ignored and not added to the scope. Now a badname exception is thrown. Using "hasOwnProperty" for an input name would be very unusual and bad practice. Either do not include such an input in a `form` or `ngForm` directive or change the name of the input. Closes #3331
2013-10-05docs($resource): remove extra "to" from $resource docsDavid Barker
Closes #4287
2013-10-04fix(ngResource): Remove request body from $deleteJen Bourey
Prevent the obj.$delete instance method from sending the resource as the request body. This commit uses the existing hasBody boolean to only set httpConfig.data for methods which should have a request body. Closes #4280
2013-10-02fix($resource): pass transformed value to both callbacks and promisesjankuca
Closes #3817
2013-09-18docs(ngResource): fix typoTim Statler
Closes #3835
2013-08-22docs(module): improve the installation instructions for optional modulesBrian Ford
Currently, the documentation does a bad job of explaining the distinction between the services that it provides, and the module itself. Furthermore, the instructions for using optional modules are inconsistent or missing. This commit addresses the problem by ading a new `{@installModule foo}` annotation to the docs generator that inlines the appropriate instructions based on the name of the module.
2013-08-21fix(docs): Replace missing end tilde in resource docs for minerr.Adam Shannon
2013-08-09style(minerr): prefer component name as namespaceKen Sheedlo
Closes #3527
2013-07-31fix(resource): check whether response matches action.isArrayPete Bacon Darwin
When using $resource you must setup your actions carefully based on what the server returns. If the server responds to a request with an array then you must configure the action with `isArray:true` and vice versa. The built-in `get` action defaults to `isArray:false` and the `query` action defaults to `isArray:true`, which is must be changed if the server does not do this. Before the error message was an exception inside angular.copy, which didn't explain what the real problem was. Rather than changing the way that angular.copy works, this change ensures that a better error message is provided to the programmer if they do not set up their resource actions correctly. Closes #2255, #1044
2013-07-18feat(Angular): provide minErr as public propertyPete Bacon Darwin
This allows us to use minErr in other modules, such as resource and sanitize.
2013-07-18chore(resource): use minErr to throw exceptionPete Bacon Darwin
2013-07-12feat($resource): support an unescaped URL portLeandro Ostera
The colon character is used to identify parameters in $resource. This meant that we had to escape the colon used in a port. It turns out that this is not necessary if we assume that parameter names cannot consist of only digits. If the parameter consists only of numbers, then it's a port. Closes #2778
2013-06-06refactor($route): pull $route and friends into angular-route.jsIgor Minar
$route, $routeParams and ngView have been pulled from core angular.js to angular-route.js/ngRoute module. This is was done to in order keep the core focused on most commonly used functionality and allow community routers to be freely used instead of $route service. There is no need to panic, angular-route will keep on being supported by the angular team. Note: I'm intentionally not fixing tutorial links. Tutorial will need bigger changes and those should be done when we update tutorial to 1.2. BREAKING CHANGE: applications that use $route will now need to load angular-route.js file and define dependency on ngRoute module. Before: ``` ... <script src="angular.js"></script> ... var myApp = angular.module('myApp', ['someOtherModule']); ... ``` After: ``` ... <script src="angular.js"></script> <script src="angular-route.js"></script> ... var myApp = angular.module('myApp', ['ngRoute', 'someOtherModule']); ... ``` Closes #2804
2013-05-23feat($resource): expose promise instead of only $thenAlexander Shtuchkin
- Instance or collection have `$promise` property which is the initial promise. - Add per-action `interceptor`, which has access to entire $http response object. BREAKING CHANGE: resource instance does not have `$then` function anymore. Before: Resource.query().$then(callback); After: Resource.query().$promise.then(callback); BREAKING CHANGE: instance methods return the promise rather than the instance itself. Before: resource.$save().chaining = true; After: resource.$save(); resourve.chaining = true; BREAKING CHANGE: On success, promise is resolved with the resource instance rather than http response object. Use interceptor to access the http response object. Before: Resource.query().$then(function(response) {...}); After: var Resource = $resource('/url', {}, { get: { method: 'get', interceptor: { response: function(response) { // expose response return response; } } } });
2013-05-20feat($http): add support for aborting via timeout promisesDavid Bennett
If the timeout argument is a promise, abort the request when it is resolved. Implemented by adding support to $httpBackend service and $httpBackend mock service. This api can also be used to explicitly abort requests while keeping the communication between the deffered and promise unidirectional. Closes #1159
2013-05-16fix($resource): null default param results in TypeErrorRyan Schumacher
Fixes issue when setting a default param as `null` error `TypeError: Cannot read property 'charAt' of null`
2013-05-14feat($resource): collapse empty suffix parameters correctlyGlenn Goodrich
Previously only repeated `/` delimiters were collapsed into a single `/`. Now, the sequence `/.` at the end of the template, i.e. only followed by a sequence of word characters, is collapsed into a single `.`. This makes it easier to support suffixes on resource URLs. For example, given a resource template of `/some/path/:id.:format`, if the `:id` is `""` but format `"json"` then the URL is now `/some/path.json`, rather than `/some/path/.json`. BREAKING CHANGE: A `/` followed by a `.`, in the last segment of the URL template is now collapsed into a single `.` delimiter. For example: `users/.json` will become `users.json`. If your server relied upon this sequence then it will no longer work. In this case you can now escape the `/.` sequence with `/\.`
2013-05-08refactor($resource): simplify url template expansionIgor Minar
2013-04-04docs($resource): improve installation sectionIgor Minar
2013-03-29docs(*): fixed typosPascal Borreli
2013-03-08docs($resource): Added an installation section.Ciro Nunes
2013-02-27feat($resource): ability to override url in resource actionszeflasher
Resources now can defined per action url override. The url is treated as a template rather than a literal string, so fancy interpolations are possible. See attached tests for example usage.
2013-02-26fix($http): don't encode URL query substring "null" to "+"Andrew McLeod
Fixes issue in encodeUriQuery used by $http and $resource that treats null as a string and replaces the characters "null" with "+".
2013-02-14docs($resource): fix bad indentation producing a code blockCedric Soulas
2013-02-14fix($resource): params should expand array values properlyMark Nadig
Today, calling e.g. var R = $resource('/Path/:a'); R.get({a: 'foo', bar: ['baz1', 'baz2']}); results in a query string like "/Path/doh?bar=baz1,baz2" which is undesirable. This commit enhances resource to use $http to encode any non-url parameters resulting in a query string like "/Path/doh?bar=baz1&bar=baz2". BREAKING CHANGE: if the server relied on the buggy behavior then either the backend should be fixed or a simple serialization of the array should be done on the client before calling the resource service.
2013-02-14fix(resource): Update RegExp to allow urlParams with out leading slashFredrik Bonander
Will allow reoucese to be loaded from a relative path Example: var R = $resource(':path'); R.get({ path : 'data.json' }); Example usage: Load resources in applications not using webserver, ie local webapp in on a tablet.
2013-02-14docs($resource): fix missing punctuationCedric Soulas
2013-02-11feat($resource): expose promise based api via $then and $resolvedIgor Minar
Expose $then and $resolved properties on resource action return values which allow checking if a promise has been resolved already as well as registering listeners at any time of the resource object life-cycle. This commit replaces unreleased commit f3bff27460afb3be208a05959d5b84233d34b7eb which exposed unintuitive $q api instead and didn't expose important stuff like http headers.
2013-01-23feat(resource): add $q/$resorved property to ResourcePartap Davis
2013-01-22revert: fix($resource): Route constructor, updated RegExpIgor Minar
This reverts commit 06ed8ef0127bf80610eba17b5021d1f483d0b0bf. The reverted commit causes regressions. See comments in the PR: https://github.com/angular/angular.js/pull/1402#issuecomment-12575399
2013-01-18fix($resource): Route constructor, updated RegExpFredrik Bonander
Update RegExp to allow urlParams with out leading slash (/). - Will allow reoucese to be loaded from a relative path Example: var R = $resource(':path'); R.get({ path : 'data.json' }); Example usage: Load resources in applications not using webserver, ie local webapp in on a tablet.
2013-01-18fix(ngResource): correct leading slash removal.pavelgj
Fixed an issues with ngResource param substitution where it was incorrectly removing leading slash when param was followed by a non-slash character. Ex: '/:foo/:bar.baz/:aux' params = { foo: 'aaa', bar: undefined, aux: undefined } The above params were incorrectly producing '/aaa.baz' but now it results in '/aaa/.baz'.
2013-01-17feat(ngResource): support all $http.config actionsMisko Hevery
This allows the transformation of the $http request in both directions, headers, caching, and timeout.
2012-12-09docs($resource): document port number escaping and fix typoJuha Syrjälä
Closes #1243
2012-11-30fix($resource): HTTP method should be case-insensitiveSudhir Jonathan
Perform call `angular.uppercase` on all given action methods. Closes #1403
2012-11-30refactor($resource): fix indentation and move a method definitionCezar Berea
Moved Resource.bind out of the actions forEach
2012-11-28feat($resource): allow dynamic default parametersPascal Corpet
Default resource params can now be calculated at runtime if defined via a function.
2012-11-24fix($resource): prevent default params to be shared between actionsAdrian Gheorghe
Having a $resource defined as: var R = $resource('/Path', {}, { get: {method: 'GET', params: {objId: '1'}}, perform: {method: 'GET'} }); was causing both actions to call the same URI (if called in this order): R.get({}); // => /Path?objId=1 R.perform({}); // => /Path?objId=1
2012-09-11docs(ngResource): Spelling typo (agressive => aggressive)Jay Zeng
2012-09-10fix($resource): fix isDefined -> angular.isDefinedIgor Minar
2012-09-06fix($resource): allow falsy values in URL parametersBenjamín Eidelman
Close #1212 when a param value was 0 (or false) it was ignored and removed from url. after this fix that only happens if the value is undefined or null.
2012-09-06fix($resource): ignore undefined parameterspetrovalex
- $resource should handle multiple params with same name - ignore slashes of undefined parameters - fix default parameters issue, mentioned in #875 Closes #875 Closes #782