|
| 1 | +<a name="1.4.0-beta.0"></a> |
| 2 | +# 1.4.0-beta.0 photonic-umbrakinesis (2015-01-13) |
| 3 | + |
| 4 | + |
| 5 | +## Bug Fixes |
| 6 | + |
| 7 | +- **$location:** support right button click on anchors in firefox |
| 8 | + ([aa798f12](https://github.com/angular/angular.js/commit/aa798f123658cb78b5581513d26577016195cafe), |
| 9 | + [#7984](https://github.com/angular/angular.js/issues/7984)) |
| 10 | +- **$templateRequest:** propagate HTTP status on failed requests |
| 11 | + ([e24f22bd](https://github.com/angular/angular.js/commit/e24f22bdb1740388938d58778aa24d307a79a796), |
| 12 | + [#10514](https://github.com/angular/angular.js/issues/10514), [#10628](https://github.com/angular/angular.js/issues/10628)) |
| 13 | +- **dateFilter:** ignore invalid dates |
| 14 | + ([1334b8c8](https://github.com/angular/angular.js/commit/1334b8c8326b93e0ca016c85516627900c7a9fd3), |
| 15 | + [#10640](https://github.com/angular/angular.js/issues/10640)) |
| 16 | +- **filterFilter:** use isArray() to determine array type |
| 17 | + ([a01ce6b8](https://github.com/angular/angular.js/commit/a01ce6b81c197b0a4a1057981e8e9c1b74f37587), |
| 18 | + [#10621](https://github.com/angular/angular.js/issues/10621)) |
| 19 | +- **ngChecked:** ensure that ngChecked doesn't interfere with ngModel |
| 20 | + ([e079111b](https://github.com/angular/angular.js/commit/e079111b33bf36be21c0941718b41cc9ca67bea0), |
| 21 | + [#10662](https://github.com/angular/angular.js/issues/10662), [#10664](https://github.com/angular/angular.js/issues/10664)) |
| 22 | +- **ngClass:** handle multi-class definitions as an element of an array |
| 23 | + ([e1132f53](https://github.com/angular/angular.js/commit/e1132f53b03a5a71aa9b6eded24d64e3bc83929b), |
| 24 | + [#8578](https://github.com/angular/angular.js/issues/8578), [#10651](https://github.com/angular/angular.js/issues/10651)) |
| 25 | +- **ngModelOptions:** allow sharing options between multiple inputs |
| 26 | + ([9c9c6b3f](https://github.com/angular/angular.js/commit/9c9c6b3fe4edfe78ae275c413ee3eefb81f1ebf6), |
| 27 | + [#10667](https://github.com/angular/angular.js/issues/10667)) |
| 28 | +- **ngOptions:** |
| 29 | + - support one-time binding on the option values |
| 30 | + ([ba90261b](https://github.com/angular/angular.js/commit/ba90261b7586b519483883800ea876510faf5c21), |
| 31 | + [#10687](https://github.com/angular/angular.js/issues/10687), [#10694](https://github.com/angular/angular.js/issues/10694)) |
| 32 | + - prevent infinite digest if track by expression is stable |
| 33 | + ([fc21db8a](https://github.com/angular/angular.js/commit/fc21db8a15545fad53124fc941b3c911a8d57067), |
| 34 | + [#9464](https://github.com/angular/angular.js/issues/9464)) |
| 35 | + - update model if selected option is removed |
| 36 | + ([933591d6](https://github.com/angular/angular.js/commit/933591d69cee2c5580da1d8522ba90a7d924da0e), |
| 37 | + [#7736](https://github.com/angular/angular.js/issues/7736)) |
| 38 | + - ensure that the correct option is selected when options are loaded async |
| 39 | + ([7fda214c](https://github.com/angular/angular.js/commit/7fda214c4f65a6a06b25cf5d5aff013a364e9cef), |
| 40 | + [#8019](https://github.com/angular/angular.js/issues/8019), [#9714](https://github.com/angular/angular.js/issues/9714), [#10639](https://github.com/angular/angular.js/issues/10639)) |
| 41 | +- **ngPluralize:** generate a warning when using a not defined rule |
| 42 | + ([c66b4b6a](https://github.com/angular/angular.js/commit/c66b4b6a133f7215d50c23db516986cfc1f0a985)) |
| 43 | + |
| 44 | + |
| 45 | +## Features |
| 46 | + |
| 47 | +- **$filter:** display Infinity symbol when number is Infinity |
| 48 | + ([51d67742](https://github.com/angular/angular.js/commit/51d6774286202b55ade402ca097e417e70fd546b), |
| 49 | + [#10421](https://github.com/angular/angular.js/issues/10421)) |
| 50 | +- **$timeout:** allow `fn` to be an optional parameter |
| 51 | + ([5a603023](https://github.com/angular/angular.js/commit/5a60302389162c6ef45f311c1aaa65a00d538c66), |
| 52 | + [#9176](https://github.com/angular/angular.js/issues/9176)) |
| 53 | +- **limitTo:** ignore limit when invalid |
| 54 | + ([a3c3bf33](https://github.com/angular/angular.js/commit/a3c3bf3332e5685dc319c46faef882cb6ac246e1), |
| 55 | + [#10510](https://github.com/angular/angular.js/issues/10510)) |
| 56 | +- **ngMock/$exceptionHandler:** log errors when rethrowing |
| 57 | + ([deb3cb4d](https://github.com/angular/angular.js/commit/deb3cb4daef0054457bd9fb8995829fff0e8f1e4), |
| 58 | + [#10540](https://github.com/angular/angular.js/issues/10540), [#10564](https://github.com/angular/angular.js/issues/10564)) |
| 59 | + |
| 60 | + |
| 61 | +## Performance Improvements |
| 62 | + |
| 63 | +- **ngStyleDirective:** use $watchCollection |
| 64 | + ([8928d023](https://github.com/angular/angular.js/commit/8928d0234551a272992d0eccef73b3ad6cb8bfd1), |
| 65 | + [#10535](https://github.com/angular/angular.js/issues/10535)) |
| 66 | + |
| 67 | + |
| 68 | +## Breaking Changes |
| 69 | + |
| 70 | +- **limitTo:** due to [a3c3bf33](https://github.com/angular/angular.js/commit/a3c3bf3332e5685dc319c46faef882cb6ac246e1), |
| 71 | + limitTo changed behavior when limit value is invalid. |
| 72 | +Instead of returning empty object/array it returns unchanged input. |
| 73 | + |
| 74 | + |
| 75 | +- **ngOptions:** due to [7fda214c](https://github.com/angular/angular.js/commit/7fda214c4f65a6a06b25cf5d5aff013a364e9cef), |
| 76 | + |
| 77 | + |
| 78 | +When using `ngOptions`: the directive applies a surrogate key as the value of the `<option>` element. |
| 79 | +This commit changes the actual string used as the surrogate key. We now store a string that is computed |
| 80 | +by calling `hashKey` on the item in the options collection; previously it was the index or key of the |
| 81 | +item in the collection. |
| 82 | + |
| 83 | +(This is in keeping with the way that the unknown option value is represented in the select directive.) |
| 84 | + |
| 85 | +Before you might have seen: |
| 86 | + |
| 87 | +``` |
| 88 | +<select ng-model="x" ng-option="i in items"> |
| 89 | + <option value="1">a</option> |
| 90 | + <option value="2">b</option> |
| 91 | + <option value="3">c</option> |
| 92 | + <option value="4">d</option> |
| 93 | +</select> |
| 94 | +``` |
| 95 | + |
| 96 | +Now it will be something like: |
| 97 | + |
| 98 | +``` |
| 99 | +<select ng-model="x" ng-option="i in items"> |
| 100 | + <option value="string:a">a</option> |
| 101 | + <option value="string:b">b</option> |
| 102 | + <option value="string:c">c</option> |
| 103 | + <option value="string:d">d</option> |
| 104 | +</select> |
| 105 | +``` |
| 106 | + |
| 107 | +If your application code relied on this value, which it shouldn't, then you will need to modify your |
| 108 | +application to accommodate this. You may find that you can use the `track by` feaure of `ngOptions` |
| 109 | +as this provides the ability to specify the key that is stored. |
| 110 | + |
| 111 | +- **ngOptions:** due to [7fda214c](https://github.com/angular/angular.js/commit/7fda214c4f65a6a06b25cf5d5aff013a364e9cef), |
| 112 | + |
| 113 | +When iterating over an object's properties using the `(key, value) in obj` syntax |
| 114 | +the order of the elements used to be sorted alphabetically. This was an artificial |
| 115 | +attempt to create a deterministic ordering since browsers don't guarantee the order. |
| 116 | +But in practice this is not what people want and so this change iterates over properties |
| 117 | +in the order they are returned by Object.keys(obj), which is almost always the order |
| 118 | +in which the properties were defined. |
| 119 | + |
| 120 | + |
| 121 | + |
| 122 | +<a name="1.3.9"></a> |
| 123 | +# 1.3.9 multidimensional-awareness (2015-01-13) |
| 124 | + |
| 125 | + |
| 126 | +## Bug Fixes |
| 127 | + |
| 128 | +- **$parse:** allow use of locals in assignments |
| 129 | + ([86900814](https://github.com/angular/angular.js/commit/869008140a96e0e9e0d9774cc2e5fdd66ada7ba9)) |
| 130 | +- **filterFilter:** use isArray() to determine array type |
| 131 | + ([d4b60ada](https://github.com/angular/angular.js/commit/d4b60ada1ecff5afdb3210caa44e149e9f3d4c1b), |
| 132 | + [#10621](https://github.com/angular/angular.js/issues/10621)) |
| 133 | + |
| 134 | + |
| 135 | +## Features |
| 136 | + |
| 137 | +- **ngMock/$exceptionHandler:** log errors when rethrowing |
| 138 | + ([2b97854b](https://github.com/angular/angular.js/commit/2b97854bf4786fe8579974e2b9d6b4adee8a3dc3), |
| 139 | + [#10540](https://github.com/angular/angular.js/issues/10540), [#10564](https://github.com/angular/angular.js/issues/10564)) |
| 140 | + |
| 141 | + |
| 142 | +## Performance Improvements |
| 143 | + |
| 144 | +- **ngStyleDirective:** use $watchCollection |
| 145 | + ([4c8d8ad5](https://github.com/angular/angular.js/commit/4c8d8ad5083d9dd17c0b8480339d5f95943f1b71), |
| 146 | + [#10535](https://github.com/angular/angular.js/issues/10535)) |
| 147 | + |
| 148 | + |
| 149 | + |
| 150 | + |
1 | 151 | <a name="1.3.8"></a>
|
2 | 152 | # 1.3.8 prophetic-narwhal (2014-12-19)
|
3 | 153 |
|
|
0 commit comments