| Age | Commit message (Collapse) | Author |
|
closure compiler is stubborn and puts the flag to the top of the file, so
we have to post-process the minified file to move the flag into the angular
closure.
|
|
|
|
Previously one had to write:
$routeProvider.when('/foo', {...});
$routeProvider.when('/bar', {...});
$routeProvider.otherwise({...});
After this change it's just:
$routeProvider.
when('/foo', {...}).
when('/bar', {...}).
otherwise({...});
Breaks #when which used to return the route definition object but now
returns self. Returning the route definition object is not very useful
so its likely that nobody ever used it.
|
|
just fixing leftover code after the removal of ngModelInstant
|
|
|
|
jQuery's attr() does not handle 0 as false, when it comes to boolean attrs.
|
|
Removing invalid widget sometimes resulted in improper cleanup of the form state.
|
|
Closes# 850
fixed an issue where ng-href would not copy its content into href if it did not contain binding.
|
|
Relax the restriction that directives can not add siblings
|
|
|
|
And make it terminal so that it does not compile its content, which would cause leaks.
|
|
|
|
The purpose of allowing the scope to be specified was to enable the $route service to work
together with ngInclude. However the functionality of creating scopes was in the recent past
moved from the $route service to the ngView directive, so currently there is no valid use case
for specifying the scope for ngInclude. In fact, allowing the scope to be defined can under
certain circumstances lead to memory leaks.
Breaks ngInclude does not have scope attribute anymore.
|
|
It turns out that listening only on "blur" event is not sufficient in many scenarios,
especially when you use form validation you always had to use ngModelnstant
e.g. if you want to disable a button based on valid/invalid form.
The feedback we got from our apps as well as external apps is that the
ngModelInstant should be the default.
In the future we might provide alternative ways of suppressing updates
on each key stroke, but it's not going to be the default behavior.
Apps already using the ngModelInstant can safely remove it from their
templates. Input fields without ngModelInstant directive will start propagating
the input changes into the model on each key stroke.
|
|
Skip changelog
|
|
$q.reject('some reason').then() should not blow up, but correctly
forward the callbacks instead.
Closes #845
|
|
By mistake both the setter and helper function that composes the whole
url were encoding the search values.
Closes #751
|
|
|
|
|
|
Previously if there was a white-space in fn: fn( ) {} we failed to infer no args.
This was originally reported by recht, but I decided to use a different fix.
Closes #829
|
|
We have many instances of this object and we clone them as well (e.g. ng-repeat).
This should save some memory and performance as well.
Double prefixed private properties of attr object:
attr.$element -> attr.$$element
attr.$observers -> attr.$$observers
Update shallowCopy to not copy $$ properties and allow passing optional destination object.
|
|
The `attr` object was only shallow copied which caused all observers to be shared.
Fixing similar issue in ng-* boolean attributes as well as ng-src and ng-href.
|
|
these files are now mostly empty so it doesn't make sense to keep them
separated from other helper functions
|
|
Instead of using our custom serializer we now use the native one and
use the replacer function to customize the serialization to preserve
most of the previous behavior (ignore $ and $$ properties as well
as window, document and scope instances).
|
|
This breaks IE7 for which you can use polyfill:
https://github.com/douglascrockford/JSON-js
<!--[if lt IE 8]>
<script src="json2.min.js"></script>
<![endif]-->
or
http://bestiejs.github.com/json3/
<!--[if lt IE 8]>
<script src="json3.min.js"></script>
<![endif]-->
|
|
$httpProvider.defaults.transformRequest and $httpProvider.defaults.transformResponse
are now arrays containing single function. This makes it easy to add an
extra transform fn.
adding an extra fn before had to be done in this cluncky way:
$httpProvider.defaults.transformResponse =
[$httpProvider.defaults.transformResponse, myTransformFn];
after this change, it's simply:
$httpProvider.defaults.transformResponse.push(myTransformFn);
|
|
|
|
|
|
Breaks angular.fromJson which doesn't deserialize date strings into date objects.
This was done to make fromJson compatible with JSON.parse.
If you do require the old behavior - if at all neeeded then because of
json deserialization of XHR responses - then please create a custom
$http transform:
$httpProvider.defaults.transformResponse.push(function(data) {
// recursively parse dates from data object here
// see code removed in this diff for hints
});
Closes #202
|
|
|
|
|
|
|
|
|
|
So that we can have non string values, e.g. ng-value="true" for radio inputs
Breaks boolean attrs are evaluated rather than interpolated
To migrate your code, change: <input ng-disabled="{{someBooleanVariable}}">
to: <input ng-disabled="someBooleanVariabla">
Affected directives:
* ng-multiple
* ng-selected
* ng-checked
* ng-disabled
* ng-readonly
* ng-required
|
|
Breaks ng-bind-attr directive removed
|
|
Closes #816
|
|
This service has been accidentaly documented in the past, it should not be considered
to be public api.
I'm also removing fallback to Modernizr since we don't need it.
Breaks any app that depends on this service and its fallback to Modernizr, please
migrate to custom "Modernizr" service:
module.value('Modernizr', function() { return Modernizr; });
|
|
It's now possible to register controllers as:
.register('MyCtrl', function($scope) { ... });
// or
.register('MyCtrl', ['$scope', function($scope) { ... });
Additionally a module loader shortcut api was added as well:
myModule.controller('MyCtr', function($scope) { ... });
|
|
|
|
Closes #818
|
|
The params parameter can now be used to serialize parameters in the URLs. The serialization does proper escaping and JSON encoding if it is an object.
|
|
$q.all([]) no longer throws exception and resolves to empty array []
|
|
previously we would not create them and it's causing all kinds of issues and accidental leaks
Closes #817
|
|
Closes #813
|
|
For typical app that has ng-app directive on the html element, we now can do:
angular.element(document).injector() or .injector()
angular.element(document).scope() or .scope()
instead of:
angular.element(document.getElementsByTagName('html')[0]).injector()
...
|
|
|
|
|
|
|
|
When a http request has no data (body), we should not send the
Content-Type header as it causes problems for some server-side
frameworks.
Closes #749
|
|
So one can how define cors/jsonp resources with port number as:
resource.route('http://localhost\\:8080/Path')
|