angular-message-format
Advanced tools
Changelog
1.5.3 diplohaplontic-meiosis (2016-03-25)
gSize
!== lgSize
(3277b885,
#14289, #14290)<a name="1.5.2"></a>
Changelog
1.4.10 benignant-oscillation (2016-03-16)
console.log
when window.console
exists
(beb00e44,
#14006, #14007, #14047)$watch
(ab5c7698)Blob
objects
(863a4232,
#9669, #14064):
(571afd65,
#13880, #13887)ngIf
(dc158e7e,
#13865, #13876)responseType
to $delegate
when using passThrough
(947cb4d1,
#5415, #5783)<a name="1.5.0"></a>
Changelog
1.5.1 equivocal-sophistication (2016-03-16)
console.log
when window.console
exists
(ce138f3c,
#14006, #14007, #14047)Blob
objects
(e9d579b6,
#9669, #14064)ngView
to be included in an asynchronously loaded template
(8237482d,
#1213, #6812, #14088)responseType
to $delegate
when using passThrough
(d16faf9f,
#5415, #5783)has()
method for checking the existence of a controller
(bb9575db,
#13951, #14109)LLLL
)
(3e5b25b3,
#13999, #14013)sharedInjector()
to angular.mock.module
(a46ab60f,
#14093, #10238)<a name="1.4.10"></a>
Changelog
1.5.0 ennoblement-facilitation (2016-02-05)
inputs
for expressions with expensive checks
(37cb9ad4)this
context when calling helper functions for $watch
(1c6edd41):
(622c4216,
#13880, #13887)ngIf
(8aecf46a,
#13865, #13876)Changelog
1.5.0-rc.2 controller-requisition (2016-01-28)
ngTouch
module's ngClick
directive has been deprecated and disabled by default. See the breaking
changes section for more informationangular.lowercase
and angular.uppercase
functions have been deprecated and will be removed
in version 1.7.0. It is recommended to use String.prototype.toLowerCase and String.prototype.toUpperCase functions instead.$animate.pin()
host elements
(7700e2df,
#13783)usemap
as it can be used as a security exploit
(234053fc)$locale
(63492a02,
#13390)areAnimationsAllowed
check
(683bd92f)The $sanitize
service will now remove instances of the usemap
attribute from any elements passed
to it.
This attribute is used to reference another element by name
or id
. Since the name
and id
attributes are already blacklisted, a sanitized usemap
attribute could only reference unsanitized
content, which is a security risk.
The ngClick
override directive from the ngTouch
module is deprecated and disabled by default.
This means that on touch-based devices, users might now experience a 300ms delay before a click event is fired.
If you rely on this directive, you can still enable it with the $touchProvider.ngClickOverrideEnabled()
method:
angular.module('myApp').config(function($touchProvider) {
$touchProvider.ngClickOverrideEnabled(true);
});
Going forward, we recommend using FastClick or perhaps one of the Angular 3rd party touch-related modules that provide similar functionality.
Also note that modern browsers already remove the 300ms delay under some circumstances:
<meta name="viewport" content="width=device-width">
is settouch-action
css property is set to none
or manipulation
See this article by Telerik for more info on the topic.
Note that this change does not affect the ngSwipe
directive.
<a name="1.4.9"></a>
Changelog
1.4.9 implicit-superannuation (2016-01-21)
event.timeStamp
anymore for time tracking
(620a20d1,
#13494, #13495)$animate.pin()
host elements
(a985adfd,
#13783)minErr
(0c1b54f0)$
(2563ff7b,
#13736)undefined
expressions
(7bb2414b)timeout
and log a warning
(47486524)ngModelCtrl.$render
in the select
directive's postLink function
(529b2507,
#13583, #13583, #13663)$animate.closeAndFlush()
(512c0811)areAnimationsAllowed
check
(2d3303dd)While we do not deem the following to be a real breaking change we are highlighting it here in the changelog to ensure that it does not surprise anyone.
Possible breaking change for users who updated their code to provide a timeout
promise for a $resource
request in version v1.4.8.
Up to v1.4.7 (included), using a promise as a timeout in $resource
, would silently
fail (i.e. have no effect).
In v1.4.8, using a promise as timeout would have the (buggy) behaviour described in https://github.com/angular/angular.js/pull/12657#issuecomment-152108887. (I.e. it will work as expected for the first time you resolve the promise and will cancel all subsequent requests after that - one has to re-create the resource class. This was not documented.)
With this change, using a promise as timeout in v1.4.9 onwards is not allowed. It will log a warning and ignore the timeout value.
If you need support for cancellable $resource
actions, you should upgrade to
version 1.5 or higher.
<a name="1.5.0-rc.1"></a>
Changelog
1.5.0-rc.1 quantum-fermentation (2016-01-15)
$animate.closeAndFlush()
(e1def1b8,
#13005, #13576, #13707)$
(4e1b36c2,
#13736)$component: These breaking changes affect only applications updating from previous 1.5 beta / rc versions
Due to d91cf167,
the default controllerAs
value for components is now $ctrl
(previously the name of the component was used).
To migrate, either set controllerAs
to the component name, or change the property name in your templates
to $ctrl
Due to 25bc5318, it is no longer possible to
set the restrict
option on directives created via the module.component()
helper.
All components are now element directives (restrict: 'E'
). If you need a directive that is not an element then you must use the
module.directive()
helper instead.
Due to f31c5a39,
components are now always created with scope: {}
(isolate scope). Previously, it was also possible to create components
with scope: true
or scope: false
. If your components rely on this scope configuration, you will have to
create a regular directive instead.
Due to 6a47c0d7,
the transclude
property is now false
by default (previously true
). If you created components that expected
transclusion then you must change your code to specify transclude: true
.
linky: due to 98c2db7f,
Before this change, the filter assumed that the input (if not undefined/null) was of type 'string'
and that certain methods (such as .match()
) would be available on it. Passing a non-string value
would most likely result in a not-very-useful error being thrown (trying to call a method that does
not exist) or in unexpected behavior (if the input happened to have the assumed methods).
After this change, a proper (informative) error will be thrown. If you want to pass non-string
values through linky
, you need to explicitly convert them to strings first.
Since input values could be initialized asynchronously, undefined
or null
will still be
returned unchanged (without throwing an error).
<a name="1.5.0-rc.0"></a>
Changelog
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.
$locals
(0ea53503)$cancelRequest()
(98528be3,
#9332, #13050, #13058, #13210)resolveAs: '$resolve'
(983b0598,
#13400)<use>
elements
(7a668cdd,
#13453)$providerInjector
after each test
(a72c12bd,
#13397, #13416)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
.
scope.$locals
already exists, the way to reference this property is now this.$locals
.$locals
then the way to reference that is now $locals.$locals
.<a name="1.4.8"></a>
Changelog
1.4.8 ice-manipulation (2015-11-19)
close
callback
(6bd6dbff,
#12278, #12096, #13054)transformResponse
even when data
is empty
(c6909464,
#12976, #12979)$locationChangeSuccess
fires even if URL ends with #
(6f8ddb6d,
#12175, #13251)isArrayLike
for unusual cases
(70edec94,
#10186, #8000, #4855, #4751, #10272)begin
is negative and exceeds input length
(4fc40bc9,
#12775, #12781)<a name="1.5.0-beta.2"></a>