|
1 |
| -# NOTICE: Pending Breaking Change |
| 1 | +<a name="1.3.0-rc.2"></a> |
| 2 | +# 1.3.0-rc.2 tactile-perception (2014-09-16) |
2 | 3 |
|
3 |
| -The next 1.3.0 release candidate (1.3.0-rc.2) will contain a perf-related change that is likely to |
4 |
| -introduce breakages in some applications. The change will affect filters and function call |
5 |
| -expressions, and will not call the function if the variables passed to the function are primitive |
6 |
| -values and have not changed since the last digest loop. |
7 | 4 |
|
8 |
| -Example: |
| 5 | +## Bug Fixes |
| 6 | + |
| 7 | +- **$compile:** update `'@'`-bindings in controller when `bindToController` is `true` |
| 8 | + ([e7ac08a0](https://github.com/angular/angular.js/commit/e7ac08a0619d2bdc91c125d341772b4fbc0d5a78), |
| 9 | + [#9052](https://github.com/angular/angular.js/issues/9052), [#9077](https://github.com/angular/angular.js/issues/9077)) |
| 10 | +- **$parse:** ensure CSP assignable expressions have `assign()` |
| 11 | + ([d13b4bd1](https://github.com/angular/angular.js/commit/d13b4bd1f5f2abaad00f5d1bf81f79549a8d0e46), |
| 12 | + [#9048](https://github.com/angular/angular.js/issues/9048)) |
| 13 | +- **i18n:** fix typo at i18n generation code |
| 14 | + ([eb4afd45](https://github.com/angular/angular.js/commit/eb4afd45f77d7d67744e01ce63a831c13c2b22e8)) |
| 15 | +- **input:** always pass in the model value to `ctrl.$isEmpty` |
| 16 | + ([3e51b84b](https://github.com/angular/angular.js/commit/3e51b84bc19f7e6acc61cb536ddcdbfed307c831), |
| 17 | + [#5164](https://github.com/angular/angular.js/issues/5164), [#9017](https://github.com/angular/angular.js/issues/9017)) |
| 18 | +- **jqLite:** fix `event.stopImmediatePropagation()` so it works as expected |
| 19 | + ([30354c58](https://github.com/angular/angular.js/commit/30354c58fe2bd371df364f7a3f55b270692a4051), |
| 20 | + [#4833](https://github.com/angular/angular.js/issues/4833)) |
| 21 | +- **ngLocale:** Regenerate Locale Files |
| 22 | + ([6a96a820](https://github.com/angular/angular.js/commit/6a96a8200aff4749bc84c44a1e8018b09d9ebdb4), |
| 23 | + [#8931](https://github.com/angular/angular.js/issues/8931), [#8583](https://github.com/angular/angular.js/issues/8583), [#7799](https://github.com/angular/angular.js/issues/7799)) |
| 24 | +- **ngModel:** |
| 25 | + - do not reset bound date objects |
| 26 | + ([1a1ef629](https://github.com/angular/angular.js/commit/1a1ef62903c8fdf4ceb81277d966a8eff67f0a96), |
| 27 | + [#6666](https://github.com/angular/angular.js/issues/6666)) |
| 28 | + - don’t clear the model when an external validator failed |
| 29 | + ([9314719d](https://github.com/angular/angular.js/commit/9314719d1eb5f480b877f5513f6e0e474edcb67d), |
| 30 | + [#8357](https://github.com/angular/angular.js/issues/8357), [#8080](https://github.com/angular/angular.js/issues/8080)) |
| 31 | +- **ngResource:** make badcfg error message more helpful |
| 32 | + ([a3962f0d](https://github.com/angular/angular.js/commit/a3962f0df3f9b8382b47952f9e4fcb48a4cc098b), |
| 33 | + [#9005](https://github.com/angular/angular.js/issues/9005), [#9010](https://github.com/angular/angular.js/issues/9010)) |
| 34 | +- **select:** update option labels when model changes |
| 35 | + ([46274102](https://github.com/angular/angular.js/commit/46274102454038ee7fd4543a32166e9bbbc98904), |
| 36 | + [#9025](https://github.com/angular/angular.js/issues/9025)) |
| 37 | + |
| 38 | + |
| 39 | +## Features |
| 40 | + |
| 41 | +- **limitTo:** support numeric input to limitTo |
| 42 | + ([1c8a7459](https://github.com/angular/angular.js/commit/1c8a7459c90efc77b1a0987f976e3bddab4565fe), |
| 43 | + [#8926](https://github.com/angular/angular.js/issues/8926)) |
| 44 | +- **ngInclude:** add template url parameter to events |
| 45 | + ([fd2d6c02](https://github.com/angular/angular.js/commit/fd2d6c02f9654e753d3655a3377a9534f7a54de3), |
| 46 | + [#8453](https://github.com/angular/angular.js/issues/8453), [#8454](https://github.com/angular/angular.js/issues/8454)) |
9 | 47 |
|
10 |
| -```html |
11 |
| -//date filter would only be called if the 'timeCreated' property has changed |
12 |
| -<span ng-bind="timeCreated|date"></span> |
13 | 48 |
|
14 |
| -//custom filter would break if depends on data changed by user other than 'cost' |
15 |
| -<span ng-bind="cost|i18nLocalizer"> |
| 49 | +## Performance Improvements |
| 50 | + |
| 51 | +- **$compile:** move `$$isolateBinding` creation to directive factory instead of on each link |
| 52 | + ([56f09f0b](https://github.com/angular/angular.js/commit/56f09f0b44048b62f964d29db4d3d2630662f6ea)) |
| 53 | +- **$parse:** |
| 54 | + - execute watched expressions only when the inputs change |
| 55 | + ([fca6be71](https://github.com/angular/angular.js/commit/fca6be71274e537c7df86ae9e27a3bd1597e9ffa), |
| 56 | + [#9006](https://github.com/angular/angular.js/issues/9006), [#9082](https://github.com/angular/angular.js/issues/9082)) |
| 57 | + - remove `binaryFn` and `valueFn` wrappers from filter expressions |
| 58 | + ([67919c80](https://github.com/angular/angular.js/commit/67919c808771a9b185a9d552cd32a90748d36666)) |
| 59 | + |
| 60 | + |
| 61 | +## Breaking Changes |
| 62 | + |
| 63 | +- **$parse:** due to [fca6be71](https://github.com/angular/angular.js/commit/fca6be71274e537c7df86ae9e27a3bd1597e9ffa), |
| 64 | + all filters are assumed to be stateless functions |
| 65 | + |
| 66 | +Previously it was just a good practice to make all filters stateless. Now |
| 67 | +it's a requirement in order for the model change-observation to pick up |
| 68 | +all changes. |
| 69 | + |
| 70 | +If an existing filter is statefull, it can be flagged as such but keep in |
| 71 | +mind that this will result in a significant performance-penalty (or rather |
| 72 | +lost opportunity to benefit from a major perf improvement) that will |
| 73 | +affect the `$digest` duration. |
| 74 | + |
| 75 | +To flag a filter as stateful do the following: |
| 76 | + |
| 77 | +```javascript |
| 78 | +myApp.filter('myFilter', function() { |
| 79 | + function myFilter(input) { ... }; |
| 80 | + myFilter.$stateful = true; |
| 81 | + return myFilter; |
| 82 | +}); |
16 | 83 | ```
|
17 | 84 |
|
18 | 85 |
|
| 86 | + |
19 | 87 | <a name="1.3.0-rc.1"></a>
|
20 | 88 | # 1.3.0-rc.1 backyard-atomicity (2014-09-09)
|
21 | 89 |
|
|
0 commit comments