packaged angular-resource
This repo is for distribution on npm
and bower
. The source for this module is in the
main AngularJS repo.
Please file issues and pull requests against that repo.
Install
You can install this package either with npm
or with bower
.
npm
npm install angular-resource
Then add ngResource
as a dependency for your app:
angular.module('myApp', [require('angular-resource')]);
bower
bower install angular-resource
Add a <script>
to your index.html
:
<script src="/bower_components/angular-resource/angular-resource.js"></script>
Then add ngResource
as a dependency for your app:
angular.module('myApp', ['ngResource']);
Documentation
Documentation is available on the
AngularJS docs site.
License
The MIT License
Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
1.5.0-rc.0 oblong-panoptikum (2015-12-09)
This is the first Release Candidate for AngularJS 1.5.0. Please try upgrading your applications and
report any regressions or other issues you find as soon as possible.
Features
- $parse: provide a mechanism to access the locals object,
$locals
(0ea53503) - $resource: add proper support for cancelling requests,
$cancelRequest()
(98528be3,
#9332, #13050, #13058, #13210) - ngAnimate: provide ng-[event]-prepare class for structural animations
(6e18b50a)
- ngLocale: add support for standalone months
(96c73a06,
#3744, #10247, #12642, #12844)
- ngMock: destroy $rootScope after each test
(b75c0d8d,
#13433)
- ngTransclude: don't overwrite the contents with an unfilled optional slot
(0812af49,
#13426)
- ngView: reference resolved locals in scope,
resolveAs: '$resolve'
(983b0598,
#13400)
Bug Fixes
- $compile:
- swap keys and values for transclude definition object
(c3a26911,
#13439)
- include non-elements in default transclusion slot
(df6fade6)
- support merging special attribute names in
replace
directives
(a5ff651a,
#13317, #13318)
- $http: throw if url passed is not a string
(6628b4f1,
#12925, #13444)
- $parse:
- prevent assignment on constructor properties
(5a674f3b,
#13417)
- handle interceptors with
undefined
expressions
(4473b81c)
- $sanitize: blacklist SVG
<use>
elements
(7a668cdd,
#13453) - formatNumber: cope with large and small number corner cases
(6a0686d4,
#13394, #8674, #12709, #8705, #12707, #10246, #10252)
- input: add missing chars to URL validation regex
(e4bb8387,
#13379, #13460)
- ngAnimate:
- ngMock: clear out
$providerInjector
after each test
(a72c12bd,
#13397, #13416) - ngOptions: don't $dirty multiple select after compilation
(c7a2028a,
#13211, #13326)
- ngTransclude:
Breaking Changes
This is only a breaking change to a feature that was added in beta 2. If you have not started
using multi-slot transclusion then this will not affect you.
The keys and values for the transclude
map of the directive definition have been swapped around
to be more consistent with the other maps, such as scope
and bindToController
.
Now the key
is the slot name and the value
is a normalized element selector.
Using a promise as timeout
is no longer supported and will log a
warning. It never worked the way it was supposed to anyway.
Before:
var deferred = $q.defer();
var User = $resource('/api/user/:id', {id: '@id'}, {
get: {method: 'GET', timeout: deferred.promise}
});
var user = User.get({id: 1}); // sends a request
deferred.resolve(); // aborts the request
// Now, we need to re-define `User` passing a new promise as `timeout`
// or else all subsequent requests from `someAction` will be aborted
User = $resource(...);
user = User.get({id: 2});
After:
var User = $resource('/api/user/:id', {id: '@id'}, {
get: {method: 'GET', cancellable: true}
});
var user = User.get({id: 1}); // sends a request
user.$cancelRequest(); // aborts the request
user = User.get({id: 2});
The $sanitize service will now remove instances of the <use>
tag from the content passed to it.
This element is used to import external SVG resources, which is a security risk as the $sanitize
service does not have access to the resource in order to sanitize it.
A new property to access route resolves is now available on the scope of the route. The default name
for this property is $resolve
. If your scope already contains a property with this name then it
will be hidden or overwritten.
In this case, you should choose a custom name for this property, that does not collide with other
properties on the scope, by specifying the resolveAs
property on the route.
A new property to access all the locals for an expression is now available on the scope. This property
is $locals
.
- If
scope.$locals
already exists, the way to reference this property is now this.$locals
. - If the locals themselves include a property
$locals
then the way to reference that is now $locals.$locals
.
<a name="1.4.8"></a>