Skip to content

Commit 4dd10fd

Browse files
committedSep 17, 2015
docs(CHANGELOG): add 1.4.6 changes
1 parent 26119c0 commit 4dd10fd

File tree

1 file changed

+174
-0
lines changed

1 file changed

+174
-0
lines changed
 

‎CHANGELOG.md

+174
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,177 @@
1+
<a name="1.4.6"></a>
2+
# 1.4.6 multiplicative-elevation (2015-09-17)
3+
4+
5+
## Bug Fixes
6+
7+
- **$animate:** invalid CSS class names should not break subsequent elements
8+
([c3a654b7](https://github.com/angular/angular.js/commit/c3a654b7c8e585b8fb9f90ece10ef54d19fd74c8),
9+
[#12674](https://github.com/angular/angular.js/issues/12674), [#12725](https://github.com/angular/angular.js/issues/12725))
10+
- **$browser:** handle async updates to location
11+
([8d39bd8a](https://github.com/angular/angular.js/commit/8d39bd8abf423517b5bff70137c2a29e32bff76d),
12+
[#12241](https://github.com/angular/angular.js/issues/12241), [#12819](https://github.com/angular/angular.js/issues/12819))
13+
- **$http:** propagate status -1 for timed out requests
14+
([38520a1a](https://github.com/angular/angular.js/commit/38520a1a73fffb6cfeffc7edfcab5be33e1619eb),
15+
[#4491](https://github.com/angular/angular.js/issues/4491), [#8756](https://github.com/angular/angular.js/issues/8756))
16+
- **$httpBackend:** send `null` when post-data is undefined
17+
([6f39f108](https://github.com/angular/angular.js/commit/6f39f1082773921e79b48a78aa6cd8a7d1921da7),
18+
[#12141](https://github.com/angular/angular.js/issues/12141), [#12739](https://github.com/angular/angular.js/issues/12739))
19+
- **$parse:**
20+
- throw error when accessing a restricted property indirectly
21+
([b2f8b0b8](https://github.com/angular/angular.js/commit/b2f8b0b875dbabf7bba0ba6e9bd553c7a8b910d0),
22+
[#12833](https://github.com/angular/angular.js/issues/12833))
23+
- `assign` returns the new value
24+
([7d2c6eee](https://github.com/angular/angular.js/commit/7d2c6eeef8ad61690737b6298c94f066082eff58),
25+
[#12675](https://github.com/angular/angular.js/issues/12675), [#12708](https://github.com/angular/angular.js/issues/12708))
26+
- **angular.copy:** support copying XML nodes
27+
([122ab074](https://github.com/angular/angular.js/commit/122ab074cac6401ecded51fa031af139360f40aa),
28+
[#5429](https://github.com/angular/angular.js/issues/5429), [#12786](https://github.com/angular/angular.js/issues/12786))
29+
- **form, ngModel:** correctly notify parent form when children are added
30+
([c6110e8b](https://github.com/angular/angular.js/commit/c6110e8b08c7e9bb2b7da5ecc5c42d1a834ea92d))
31+
- **input:** ignore min/max if they are empty on all input types
32+
([544001f5](https://github.com/angular/angular.js/commit/544001f5a331de06961c0201d69ecc92893abd0b),
33+
[#12363](https://github.com/angular/angular.js/issues/12363), [#12785](https://github.com/angular/angular.js/issues/12785))
34+
- **ngAnimateMock:** $animate.flush should work for looping animations
35+
([472d076c](https://github.com/angular/angular.js/commit/472d076cca2ffb99bd87d3c026ef69afc713268d))
36+
- **ngAria:** clean up tabindex usage
37+
([f48244ce](https://github.com/angular/angular.js/commit/f48244ce5e6d11637aab97af1aff3430bda12429),
38+
[#11500](https://github.com/angular/angular.js/issues/11500))
39+
- **ngJq:** properly detect when `ng-jq` is empty
40+
([19ecdb54](https://github.com/angular/angular.js/commit/19ecdb54bf85fc4e7bd3cde453aa6843f869a1ab),
41+
[#12741](https://github.com/angular/angular.js/issues/12741))
42+
- **ngModel:**
43+
- remove reference to parentForm from removed control
44+
([290b5049](https://github.com/angular/angular.js/commit/290b5049c2de4aa0d6ba8eea624bc6dce027b197),
45+
[#12263](https://github.com/angular/angular.js/issues/12263))
46+
- let aliased validator directives work on any element
47+
([43769fb6](https://github.com/angular/angular.js/commit/43769fb676ae904852582a2c88a5523f0b9f58fc),
48+
[#12158](https://github.com/angular/angular.js/issues/12158), [#12658](https://github.com/angular/angular.js/issues/12658))
49+
- **ngRepeat:** add support to iterate an object's properties even if it does not inherit from Object
50+
([7ea2c7f3](https://github.com/angular/angular.js/commit/7ea2c7f36ef854391df3f6b127ad42a2d5cbf1a3),
51+
[#9964](https://github.com/angular/angular.js/issues/9964))
52+
- **rootScope:** add support for watchCollection to watch an object which does not inherit from Object
53+
([20fb626b](https://github.com/angular/angular.js/commit/20fb626b78ed8fbd02f59f5b26df9387a2a6ea0e),
54+
[#9964](https://github.com/angular/angular.js/issues/9964))
55+
- **select:** update option if interpolated value attribute changes
56+
([82b0929e](https://github.com/angular/angular.js/commit/82b0929e4ea0ae087f766f2ee26f9570c8a3c8ac),
57+
[#12005](https://github.com/angular/angular.js/issues/12005), [#12582](https://github.com/angular/angular.js/issues/12582))
58+
- **toDebugString:** change replacement string
59+
([0ca8b1df](https://github.com/angular/angular.js/commit/0ca8b1df201044019596db7173d784aeebdea0a7),
60+
[#10103](https://github.com/angular/angular.js/issues/10103))
61+
62+
63+
## Performance Improvements
64+
65+
- **Angular:** only create new collection in getBlockNodes if the block has changed
66+
([0202663e](https://github.com/angular/angular.js/commit/0202663e938a477cd86145bb158bf7a02efd8fb5),
67+
[#9899](https://github.com/angular/angular.js/issues/9899))
68+
69+
70+
71+
72+
<a name="1.3.19"></a>
73+
# 1.3.19 glutinous-shriek (2015-09-15)
74+
75+
## Bug Fixes
76+
77+
- **$http:** propagate status -1 for timed out requests
78+
([f13055a0](https://github.com/angular/angular.js/commit/f13055a0a53a39b160448713a5617edee6042801),
79+
[#4491](https://github.com/angular/angular.js/issues/4491), [#8756](https://github.com/angular/angular.js/issues/8756))
80+
- **$location:** don't crash if navigating outside the app base
81+
([623ce1ad](https://github.com/angular/angular.js/commit/623ce1ad2cf68024719c5cae5d682d00195df30c),
82+
[#11667](https://github.com/angular/angular.js/issues/11667))
83+
- **$parse:** throw error when accessing a restricted property indirectly
84+
([ec98c94c](https://github.com/angular/angular.js/commit/ec98c94ccbfc97b655447956738d5f6ff98b2f33),
85+
[#12833](https://github.com/angular/angular.js/issues/12833))
86+
- **ngModel:** validate pattern against the viewValue
87+
([274e9353](https://github.com/angular/angular.js/commit/274e93537ed4e95aefeacea48909eb334894f0ac),
88+
[#12344](https://github.com/angular/angular.js/issues/12344))
89+
90+
91+
## Features
92+
93+
- **ngAnimate:** introduce `$animate.flush` for unit testing
94+
([f98e0384](https://github.com/angular/angular.js/commit/f98e038418f7367b2373adcf4887f64a8e8bdcb0))
95+
96+
97+
## Possible Breaking Changes
98+
99+
- **ngModel:** due to [274e9353](https://github.com/angular/angular.js/commit/274e93537ed4e95aefeacea48909eb334894f0ac),
100+
101+
102+
The `ngPattern` and `pattern` directives will validate the regex
103+
against the `viewValue` of `ngModel`, i.e. the value of the model
104+
before the $parsers are applied. Previously, the modelValue
105+
(the result of the $parsers) was validated.
106+
107+
This fixes issues where `input[date]` and `input[number]` cannot
108+
be validated because the viewValue string is parsed into
109+
`Date` and `Number` respectively (starting with Angular 1.3).
110+
It also brings the directives in line with HTML5 constraint
111+
validation, which validates against the input value.
112+
113+
This change is unlikely to cause applications to fail, because even
114+
in Angular 1.2, the value that was validated by pattern could have
115+
been manipulated by the $parsers, as all validation was done
116+
inside this pipeline.
117+
118+
If you rely on the pattern being validated against the modelValue,
119+
you must create your own validator directive that overwrites
120+
the built-in pattern validator:
121+
122+
```
123+
.directive('patternModelOverwrite', function patternModelOverwriteDirective() {
124+
return {
125+
restrict: 'A',
126+
require: '?ngModel',
127+
priority: 1,
128+
compile: function() {
129+
var regexp, patternExp;
130+
131+
return {
132+
pre: function(scope, elm, attr, ctrl) {
133+
if (!ctrl) return;
134+
135+
attr.$observe('pattern', function(regex) {
136+
/**
137+
* The built-in directive will call our overwritten validator
138+
* (see below). We just need to update the regex.
139+
* The preLink fn guaranetees our observer is called first.
140+
*/
141+
if (isString(regex) && regex.length > 0) {
142+
regex = new RegExp('^' + regex + '$');
143+
}
144+
145+
if (regex && !regex.test) {
146+
//The built-in validator will throw at this point
147+
return;
148+
}
149+
150+
regexp = regex || undefined;
151+
});
152+
153+
},
154+
post: function(scope, elm, attr, ctrl) {
155+
if (!ctrl) return;
156+
157+
regexp, patternExp = attr.ngPattern || attr.pattern;
158+
159+
//The postLink fn guarantees we overwrite the built-in pattern validator
160+
ctrl.$validators.pattern = function(value) {
161+
return ctrl.$isEmpty(value) ||
162+
isUndefined(regexp) ||
163+
regexp.test(value);
164+
};
165+
}
166+
};
167+
}
168+
};
169+
});
170+
```
171+
172+
173+
174+
1175
<a name="1.4.5"></a>
2176
# 1.4.5 permanent-internship (2015-08-28)
3177

0 commit comments

Comments
 (0)
Please sign in to comment.