|
| 1 | +<a name="1.5.0-beta.2"></a> |
| 2 | +# 1.5.0-beta.2 effective-delegation (2015-11-17) |
| 3 | + |
| 4 | + |
| 5 | +## Bug Fixes |
| 6 | + |
| 7 | +- **$animate:** ensure leave animation calls `close` callback |
| 8 | + ([bfad2a4f](https://github.com/angular/angular.js/commit/bfad2a4f4ae71cfead61c112b0d2ab1fcadd39ee), |
| 9 | + [#12278](https://github.com/angular/angular.js/issues/12278), [#12096](https://github.com/angular/angular.js/issues/12096), [#13054](https://github.com/angular/angular.js/issues/13054)) |
| 10 | +- **$cacheFactory:** check key exists before decreasing cache size count |
| 11 | + ([b9bed7d9](https://github.com/angular/angular.js/commit/b9bed7d9dadb4ba1a4186f2ae562f807b21bcf12), |
| 12 | + [#12321](https://github.com/angular/angular.js/issues/12321), [#12329](https://github.com/angular/angular.js/issues/12329)) |
| 13 | +- **$compile:** |
| 14 | + - bind all directive controllers correctly when using `bindToController` |
| 15 | + ([bd7b2177](https://github.com/angular/angular.js/commit/bd7b2177291697a665e4068501b3704200972467), |
| 16 | + [#11343](https://github.com/angular/angular.js/issues/11343), [#11345](https://github.com/angular/angular.js/issues/11345)) |
| 17 | + - evaluate against the correct scope with bindToController on new scope |
| 18 | + ([50557a6c](https://github.com/angular/angular.js/commit/50557a6cd329e8438fb5694d11e8a7d018142afe), |
| 19 | + [#13021](https://github.com/angular/angular.js/issues/13021), [#13025](https://github.com/angular/angular.js/issues/13025)) |
| 20 | + - bind all directive controllers correctly when using `bindToController` |
| 21 | + ([1c13a4f4](https://github.com/angular/angular.js/commit/1c13a4f45ddc86805a96576b75c969ad577b6274), |
| 22 | + [#11343](https://github.com/angular/angular.js/issues/11343), [#11345](https://github.com/angular/angular.js/issues/11345)) |
| 23 | + - fix scoping of transclusion directives inside replace directive |
| 24 | + ([1a98c0ee](https://github.com/angular/angular.js/commit/1a98c0ee346b718b9462da1abf4352a4605cbc7f), |
| 25 | + [#12975](https://github.com/angular/angular.js/issues/12975), [#12936](https://github.com/angular/angular.js/issues/12936), [#13244](https://github.com/angular/angular.js/issues/13244)) |
| 26 | + - use createMap() for $$observe listeners when initialized from attr interpolation |
| 27 | + ([76c2491a](https://github.com/angular/angular.js/commit/76c2491a316d6b296c721227529fcb09087d369a), |
| 28 | + [#10446](https://github.com/angular/angular.js/issues/10446)) |
| 29 | + - properly sanitize xlink:href attribute interoplation |
| 30 | + ([f33ce173](https://github.com/angular/angular.js/commit/f33ce173c90736e349cf594df717ae3ee41e0f7a), |
| 31 | + [#12524](https://github.com/angular/angular.js/issues/12524)) |
| 32 | +- **$http:** apply `transformResponse` even when `data` is empty |
| 33 | + ([7c0731ed](https://github.com/angular/angular.js/commit/7c0731edb2f72bdf0efa186f641dab3b6aecc5d5), |
| 34 | + [#12976](https://github.com/angular/angular.js/issues/12976), [#12979](https://github.com/angular/angular.js/issues/12979)) |
| 35 | +- **$location:** ensure `$locationChangeSuccess` fires even if URL ends with `#` |
| 36 | + ([4412fe23](https://github.com/angular/angular.js/commit/4412fe238f37f79a2017ee7b20ba089c0acd73e9), |
| 37 | + [#12175](https://github.com/angular/angular.js/issues/12175), [#13251](https://github.com/angular/angular.js/issues/13251)) |
| 38 | +- **$parse:** |
| 39 | + - evaluate once simple expressions in interpolations |
| 40 | + ([1caf0b6b](https://github.com/angular/angular.js/commit/1caf0b6bee5781589e20f7a27a8c60e8b1b784f5), |
| 41 | + [#12983](https://github.com/angular/angular.js/issues/12983), [#13002](https://github.com/angular/angular.js/issues/13002)) |
| 42 | + - fix typo in error message ("assing" -> "assign") |
| 43 | + ([70dac5ae](https://github.com/angular/angular.js/commit/70dac5ae82ffe9c6250681274905583747523b5d), |
| 44 | + [#12940](https://github.com/angular/angular.js/issues/12940)) |
| 45 | + - block assigning to fields of a constructor |
| 46 | + ([e1f4f23f](https://github.com/angular/angular.js/commit/e1f4f23f781a79ae8a4046b21130283cec3f2917), |
| 47 | + [#12860](https://github.com/angular/angular.js/issues/12860)) |
| 48 | + - do not convert to string computed properties multiple times |
| 49 | + ([20cf7d5e](https://github.com/angular/angular.js/commit/20cf7d5e3a0af766b1929e24794859c79439351c)) |
| 50 | +- **$resource:** allow XHR request to be cancelled via timeout promise |
| 51 | + ([4fc73466](https://github.com/angular/angular.js/commit/4fc734665e5dddef26ed30a9d4f75632cd269481), |
| 52 | + [#12657](https://github.com/angular/angular.js/issues/12657), [#12675](https://github.com/angular/angular.js/issues/12675), [#10890](https://github.com/angular/angular.js/issues/10890), [#9332](https://github.com/angular/angular.js/issues/9332)) |
| 53 | +- **$rootScope:** stop IE9 memory leak when destroying scopes |
| 54 | + ([8fe781fb](https://github.com/angular/angular.js/commit/8fe781fbe7c42c64eb895c28d9fd5479b037d020), |
| 55 | + [#10706](https://github.com/angular/angular.js/issues/10706), [#11786](https://github.com/angular/angular.js/issues/11786)) |
| 56 | +- **$sanitize:** |
| 57 | + - strip urls starting with 'unsafe:' as opposed to 'unsafe' |
| 58 | + ([a4dfa4d0](https://github.com/angular/angular.js/commit/a4dfa4d061fd2f6baf9821f0863dcce7888232ab), |
| 59 | + [#12524](https://github.com/angular/angular.js/issues/12524)) |
| 60 | + - add mXSS protection |
| 61 | + ([bc0d8c4e](https://github.com/angular/angular.js/commit/bc0d8c4eea9a34bff5e29dd492dcdd668251be40), |
| 62 | + [#12524](https://github.com/angular/angular.js/issues/12524)) |
| 63 | + - support void elements, fixups, remove dead code, typos |
| 64 | + ([94207f8f](https://github.com/angular/angular.js/commit/94207f8fb6ee8fe26fe18657f6b5aca6def99605), |
| 65 | + [#12524](https://github.com/angular/angular.js/issues/12524)) |
| 66 | +- **Angular.js:** fix `isArrayLike` for unusual cases |
| 67 | + ([2c8d87e0](https://github.com/angular/angular.js/commit/2c8d87e064dca99a49ed35d1db885b1f2e40dcf4), |
| 68 | + [#10186](https://github.com/angular/angular.js/issues/10186), [#8000](https://github.com/angular/angular.js/issues/8000), [#4855](https://github.com/angular/angular.js/issues/4855), [#4751](https://github.com/angular/angular.js/issues/4751), [#10272](https://github.com/angular/angular.js/issues/10272)) |
| 69 | +- **filters:** ensure `formatNumber` observes i18n decimal separators |
| 70 | + ([658a865c](https://github.com/angular/angular.js/commit/658a865c5b2580eed53b340e7394945cd76e2260), |
| 71 | + [#10342](https://github.com/angular/angular.js/issues/10342), [#12850](https://github.com/angular/angular.js/issues/12850)) |
| 72 | +- **injector:** support arrow functions with no parenthesis |
| 73 | + ([03726f7f](https://github.com/angular/angular.js/commit/03726f7fbd5d71c0604b8dd40e97cb2fb0fb777f), |
| 74 | + [#12890](https://github.com/angular/angular.js/issues/12890)) |
| 75 | +- **input:** remove workaround for Firefox bug |
| 76 | + ([b366f035](https://github.com/angular/angular.js/commit/b366f0352abccfe4c4868b5a9e8c0b88659bd1ee)) |
| 77 | +- **isArrayLike:** handle jQuery objects of length 0 |
| 78 | + ([773efd08](https://github.com/angular/angular.js/commit/773efd0812097a89944c889c595485a5744326f6)) |
| 79 | +- **jqLite:** |
| 80 | + - deregister special `mouseenter` / `mouseleave` events correctly |
| 81 | + ([f5aa2079](https://github.com/angular/angular.js/commit/f5aa207960e0df577284a06a4353e2b53b159589), |
| 82 | + [#12795](https://github.com/angular/angular.js/issues/12795), [#12799](https://github.com/angular/angular.js/issues/12799)) |
| 83 | + - ensure mouseenter works with svg elements on IE |
| 84 | + ([941c1c35](https://github.com/angular/angular.js/commit/941c1c35f175c36171a8855323f086341ea55711), |
| 85 | + [#10259](https://github.com/angular/angular.js/issues/10259), [#10276](https://github.com/angular/angular.js/issues/10276)) |
| 86 | +- **limitTo:** start at 0 if `begin` is negative and exceeds input length |
| 87 | + ([ecf93048](https://github.com/angular/angular.js/commit/ecf9304811a0fd54289a35b9c3b715a1d4447806), |
| 88 | + [#12775](https://github.com/angular/angular.js/issues/12775), [#12781](https://github.com/angular/angular.js/issues/12781)) |
| 89 | +- **merge:** |
| 90 | + - ensure that jqlite->jqlite and DOM->DOM |
| 91 | + ([75292a6c](https://github.com/angular/angular.js/commit/75292a6cb5e17d618902f7996e80eb3118eff7b0)) |
| 92 | + - clone elements instead of treating them like simple objects |
| 93 | + ([17715fa3](https://github.com/angular/angular.js/commit/17715fa3668b1fcabaedcd82e2e57b2a80e0a0c2), |
| 94 | + [#12286](https://github.com/angular/angular.js/issues/12286)) |
| 95 | +- **ngAnimate:** |
| 96 | + - ensure anchoring uses body as a container when needed |
| 97 | + ([240d5896](https://github.com/angular/angular.js/commit/240d5896ecdfac2351f9bd6147b52de52c0b7608), |
| 98 | + [#12872](https://github.com/angular/angular.js/issues/12872)) |
| 99 | + - callback detection should only use RAF when necessary |
| 100 | + ([8b27c3f0](https://github.com/angular/angular.js/commit/8b27c3f064b34532ba99d709cadf09fc4c0cbeab)) |
| 101 | +- **ngAria:** don't add tabindex to radio and checkbox inputs |
| 102 | + ([662fb282](https://github.com/angular/angular.js/commit/662fb282c176ca00a85b6dec7af90446ea90f662), |
| 103 | + [#12492](https://github.com/angular/angular.js/issues/12492), [#13095](https://github.com/angular/angular.js/issues/13095)) |
| 104 | +- **ngInput:** change URL_REGEXP to better match RFC3987 |
| 105 | + ([ffb6b2fb](https://github.com/angular/angular.js/commit/ffb6b2fb56d9ffcb051284965dd538629ea9687a), |
| 106 | + [#11341](https://github.com/angular/angular.js/issues/11341), [#11381](https://github.com/angular/angular.js/issues/11381)) |
| 107 | +- **ngMessage:** make ngMessage compatible with ngBind |
| 108 | + ([4971ef12](https://github.com/angular/angular.js/commit/4971ef12d4c2c268cb8d26f90385dc96eba19db8), |
| 109 | + [#8089](https://github.com/angular/angular.js/issues/8089), [#13074](https://github.com/angular/angular.js/issues/13074)) |
| 110 | +- **ngMessages:** prevent race condition with ngAnimate |
| 111 | + ([8366622b](https://github.com/angular/angular.js/commit/8366622bed009d2cad7d0cff28b9c1e48bfbd4e1), |
| 112 | + [#12856](https://github.com/angular/angular.js/issues/12856), [#12903](https://github.com/angular/angular.js/issues/12903)) |
| 113 | +- **ngMock:** reset cache before every test |
| 114 | + ([fd83d372](https://github.com/angular/angular.js/commit/fd83d3724ad30a93254f08cb82f981eaddb5dbff), |
| 115 | + [#13013](https://github.com/angular/angular.js/issues/13013)) |
| 116 | +- **ngOptions:** |
| 117 | + - skip comments and empty options when looking for options |
| 118 | + ([395f3ec6](https://github.com/angular/angular.js/commit/395f3ec638f2ee77d22889823aa80898a6ce812d), |
| 119 | + [#12190](https://github.com/angular/angular.js/issues/12190), [#13029](https://github.com/angular/angular.js/issues/13029), [#13033](https://github.com/angular/angular.js/issues/13033)) |
| 120 | + - override select option registration |
| 121 | + ([2fcfd75a](https://github.com/angular/angular.js/commit/2fcfd75a142200e1a4b1b7ed4fb588e3befcbd57), |
| 122 | + [#11685](https://github.com/angular/angular.js/issues/11685), [#12972](https://github.com/angular/angular.js/issues/12972), [#12968](https://github.com/angular/angular.js/issues/12968), [#13012](https://github.com/angular/angular.js/issues/13012)) |
| 123 | + - skip comments when looking for option elements |
| 124 | + ([7f3f3dd3](https://github.com/angular/angular.js/commit/7f3f3dd3ebcc44711600ac292af54c411c3c705f), |
| 125 | + [#12190](https://github.com/angular/angular.js/issues/12190)) |
| 126 | + - prevent frozen select ui in IE |
| 127 | + ([42c97c5d](https://github.com/angular/angular.js/commit/42c97c5db5921e9e5447fb32bdae1f48da42844f), |
| 128 | + [#11314](https://github.com/angular/angular.js/issues/11314), [#11795](https://github.com/angular/angular.js/issues/11795)) |
| 129 | + - allow falsy values as option group identifiers |
| 130 | + ([b71d7c3f](https://github.com/angular/angular.js/commit/b71d7c3f3c04e65b02d88b33c22dd90ae3cdfc27), |
| 131 | + [#7015](https://github.com/angular/angular.js/issues/7015), [#7024](https://github.com/angular/angular.js/issues/7024), [#12888](https://github.com/angular/angular.js/issues/12888)) |
| 132 | + - throw if ngModel is not present |
| 133 | + ([ded25187](https://github.com/angular/angular.js/commit/ded2518756d4409fdfda0d4af243f2125bea01b5), |
| 134 | + [#7047](https://github.com/angular/angular.js/issues/7047), [#12840](https://github.com/angular/angular.js/issues/12840)) |
| 135 | +- **ngResource:** encode `&` in URL query param values |
| 136 | + ([1c97a605](https://github.com/angular/angular.js/commit/1c97a6057bc013262be761bca5e5c22224c4bbf8), |
| 137 | + [#12201](https://github.com/angular/angular.js/issues/12201)) |
| 138 | +- **orderByFilter:** throw error if input is not array-like |
| 139 | + ([2a85a634](https://github.com/angular/angular.js/commit/2a85a634f86c84f15b411ce009a3515fca7ba580), |
| 140 | + [#11255](https://github.com/angular/angular.js/issues/11255), [#11719](https://github.com/angular/angular.js/issues/11719)) |
| 141 | + |
| 142 | + |
| 143 | +## Features |
| 144 | + |
| 145 | +- **$animateCss:** add support for temporary styles via `cleanupStyles` |
| 146 | + ([9f67da62](https://github.com/angular/angular.js/commit/9f67da625293441e27559ebde7503cc63408a95c), |
| 147 | + [#12930](https://github.com/angular/angular.js/issues/12930)) |
| 148 | +- **$compile:** multiple transclusion via named slots |
| 149 | + ([a4ada8ba](https://github.com/angular/angular.js/commit/a4ada8ba9c4358273575e16778e76446ad080054), |
| 150 | + [#4357](https://github.com/angular/angular.js/issues/4357), [#12742](https://github.com/angular/angular.js/issues/12742), [#11736](https://github.com/angular/angular.js/issues/11736), [#12934](https://github.com/angular/angular.js/issues/12934)) |
| 151 | +- **$http:** add `$xhrFactory` service to enable creation of custom xhr objects |
| 152 | + ([106f90aa](https://github.com/angular/angular.js/commit/106f90aafa0fa5a81ad7af7ffc9d1e00ab97ffef), |
| 153 | + [#2318](https://github.com/angular/angular.js/issues/2318), [#9319](https://github.com/angular/angular.js/issues/9319), [#12159](https://github.com/angular/angular.js/issues/12159)) |
| 154 | +- **$injector:** |
| 155 | + - Allow specifying a decorator on $injector |
| 156 | + ([29a05984](https://github.com/angular/angular.js/commit/29a05984fe46c2c18ca51404f07c866dd92d1eec)) |
| 157 | + - add strictDi property to $injector instance |
| 158 | + ([79577c5d](https://github.com/angular/angular.js/commit/79577c5d316c7bf0204d7d1747ddc5b15bfe2955), |
| 159 | + [#11728](https://github.com/angular/angular.js/issues/11728), [#11734](https://github.com/angular/angular.js/issues/11734)) |
| 160 | +- **$sanitize:** make svg support an opt-in |
| 161 | + ([181fc567](https://github.com/angular/angular.js/commit/181fc567d873df065f1e84af7225deb70a8d2eb9), |
| 162 | + [#12524](https://github.com/angular/angular.js/issues/12524)) |
| 163 | +- **$templateRequest:** support configuration of $http options |
| 164 | + ([b2fc39d2](https://github.com/angular/angular.js/commit/b2fc39d2ddac64249b4f2961ee18b878a1e98251), |
| 165 | + [#13188](https://github.com/angular/angular.js/issues/13188), [#11868](https://github.com/angular/angular.js/issues/11868), [#6860](https://github.com/angular/angular.js/issues/6860)) |
| 166 | +- **$time:** create time service |
| 167 | + ([fa4c7b7f](https://github.com/angular/angular.js/commit/fa4c7b7f1d885eb9746166e268c9f7511ea39676), |
| 168 | + [#10402](https://github.com/angular/angular.js/issues/10402), [#10525](https://github.com/angular/angular.js/issues/10525)) |
| 169 | +- **Module:** add helper method, `component(...)` for creating component directives |
| 170 | + ([54e81655](https://github.com/angular/angular.js/commit/54e816552f20e198e14f849cdb2379fed8570c1a), |
| 171 | + [#10007](https://github.com/angular/angular.js/issues/10007), [#12933](https://github.com/angular/angular.js/issues/12933)) |
| 172 | +- **linky:** add support for custom attributes |
| 173 | + ([06f002b1](https://github.com/angular/angular.js/commit/06f002b161f61079933d482668440d8649fd84fc), |
| 174 | + [#12558](https://github.com/angular/angular.js/issues/12558), [#13061](https://github.com/angular/angular.js/issues/13061)) |
| 175 | +- **ngAnimate:** introduce ngAnimateSwap directive |
| 176 | + ([78297d25](https://github.com/angular/angular.js/commit/78297d252de7c80f73ecf9e291ed71bd52578361)) |
| 177 | +- **ngMock:** |
| 178 | + - add expectRoute and whenRoute shortcuts with colon param matching |
| 179 | + ([d67e999d](https://github.com/angular/angular.js/commit/d67e999dfbdf47b79fdb3830a04f4f4010a98b98), |
| 180 | + [#12406](https://github.com/angular/angular.js/issues/12406)) |
| 181 | + - invoke nested calls to `module()` immediately |
| 182 | + ([51a27c0f](https://github.com/angular/angular.js/commit/51a27c0f1ad6cd8d3e33ab0d71de22c1627c7ec3), |
| 183 | + [#12887](https://github.com/angular/angular.js/issues/12887)) |
| 184 | +- **ngModel:** provide ng-empty and ng-not-empty CSS classes |
| 185 | + ([630280c7](https://github.com/angular/angular.js/commit/630280c7fb04a83208d09c97c2efb81be3a3db74), |
| 186 | + [#10050](https://github.com/angular/angular.js/issues/10050), [#12848](https://github.com/angular/angular.js/issues/12848)) |
| 187 | + |
| 188 | + |
| 189 | +## Performance Improvements |
| 190 | + |
| 191 | +- **$compile:** |
| 192 | + - use static jquery data method to avoid creating new instances |
| 193 | + ([9b90c32f](https://github.com/angular/angular.js/commit/9b90c32f31fd56e348539674128acec6536cd846)) |
| 194 | + - Lazily compile the `transclude` function |
| 195 | + ([652b83eb](https://github.com/angular/angular.js/commit/652b83eb226131d131a44453520a569202aa4aac)) |
| 196 | +- **$interpolate:** provide a simplified result for constant expressions |
| 197 | + ([cf83b4f4](https://github.com/angular/angular.js/commit/cf83b4f445d3a1fc18fc140e65e670754401d50b)) |
| 198 | +- **copy:** |
| 199 | + - avoid regex in isTypedArray |
| 200 | + ([c8768d12](https://github.com/angular/angular.js/commit/c8768d12f2f0b31f9ac971aeac6d2c17c9ff3db5)) |
| 201 | + - only validate/clear user specified destination |
| 202 | + ([33c67ce7](https://github.com/angular/angular.js/commit/33c67ce785cf8be7f0c294b3942ca4a337c5759d), |
| 203 | + [#12068](https://github.com/angular/angular.js/issues/12068)) |
| 204 | +- **merge:** remove unnecessary wrapping of jqLite element |
| 205 | + ([4daafd3d](https://github.com/angular/angular.js/commit/4daafd3dbe6a80d578f5a31df1bb99c77559543e), |
| 206 | + [#13236](https://github.com/angular/angular.js/issues/13236)) |
| 207 | + |
| 208 | + |
| 209 | +## Breaking Changes |
| 210 | + |
| 211 | +- **$sanitize:** due to [181fc567](https://github.com/angular/angular.js/commit/181fc567d873df065f1e84af7225deb70a8d2eb9), |
| 212 | + The svg support in is now an opt-in option |
| 213 | + |
| 214 | +Applications that depend on this option can use to turn the option back on, |
| 215 | +but while doing so, please read the warning provided in the documentation for |
| 216 | +information on preventing click-hijacking attacks when this option is turned on. |
| 217 | + |
| 218 | +- **ngMessage:** due to [4971ef12](https://github.com/angular/angular.js/commit/4971ef12d4c2c268cb8d26f90385dc96eba19db8), |
| 219 | + |
| 220 | + |
| 221 | +ngMessage is now compiled with a priority of 1, which means directives |
| 222 | +on the same element as ngMessage with a priority lower than 1 will |
| 223 | +be applied when ngMessage calls the $transclude function. |
| 224 | +Previously, they were applied during the initial compile phase and were |
| 225 | +passed the comment element created by the transclusion of ngMessage. |
| 226 | +To restore this behavior, custom directives need to have |
| 227 | +their priority increased to at least "1". |
| 228 | + |
| 229 | +- **ngOptions:** due to [ded25187](https://github.com/angular/angular.js/commit/ded2518756d4409fdfda0d4af243f2125bea01b5), |
| 230 | + |
| 231 | +`ngOptions` will now throw if `ngModel` is not present on the `select` |
| 232 | +element. Previously, having no `ngModel` let `ngOptions` silently |
| 233 | +fail, which could lead to hard to debug errors. The change should |
| 234 | +therefore not affect any applications, as it simply makes the |
| 235 | +requirement more strict and alerts the developer explicitly. |
| 236 | + |
| 237 | +- **orderByFilter:** due to [2a85a634](https://github.com/angular/angular.js/commit/2a85a634f86c84f15b411ce009a3515fca7ba580), |
| 238 | + |
| 239 | +Previously, an non array-like input would pass through the orderBy filter |
| 240 | +unchanged. |
| 241 | +Now, an error is thrown. This can be worked around by converting an object |
| 242 | +to an array, either manually or using a filter such as |
| 243 | +https://github.com/petebacondarwin/angular-toArrayFilter. |
| 244 | +(`null` and `undefined` still pass through without an error, in order to |
| 245 | +support asynchronous loading of resources.) |
| 246 | + |
| 247 | +Closes #11255 |
| 248 | +Closes #11719 |
| 249 | + |
| 250 | + |
| 251 | + |
1 | 252 | <a name="1.5.0-beta.1"></a>
|
2 | 253 | # 1.5.0-beta.1 dense-dispersion (2015-09-29)
|
3 | 254 |
|
|
0 commit comments