|  | 
|  | 1 | +<a name="1.3.0-beta.12"></a> | 
|  | 2 | +# 1.3.0-beta.12 ephemeral-acceleration (2014-06-13) | 
|  | 3 | + | 
|  | 4 | + | 
|  | 5 | +## Bug Fixes | 
|  | 6 | + | 
|  | 7 | +- **$compile:** | 
|  | 8 | +  - ensure transclude works at root of templateUrl | 
|  | 9 | +  ([398053c5](https://github.com/angular/angular.js/commit/398053c56352487751d14ea41b3b892960397019), | 
|  | 10 | +   [#7183](https://github.com/angular/angular.js/issues/7183), [#7772](https://github.com/angular/angular.js/issues/7772)) | 
|  | 11 | +  - always error if two directives add isolate-scope and new-scope | 
|  | 12 | +  ([2cde927e](https://github.com/angular/angular.js/commit/2cde927e58c8d1588569d94a797e43cdfbcedaf9), | 
|  | 13 | +   [#4402](https://github.com/angular/angular.js/issues/4402), [#4421](https://github.com/angular/angular.js/issues/4421)) | 
|  | 14 | +- **$injector:** report circularity in circular dependency error message | 
|  | 15 | +  ([545d22b4](https://github.com/angular/angular.js/commit/545d22b47006c1efa420ba551d4850affdba8016), | 
|  | 16 | +   [#7500](https://github.com/angular/angular.js/issues/7500)) | 
|  | 17 | +- **$parse:** Handle one-time to `null` | 
|  | 18 | +  ([600a41a7](https://github.com/angular/angular.js/commit/600a41a7b65f2dd139664fca6331c40451db75be), | 
|  | 19 | +   [#7743](https://github.com/angular/angular.js/issues/7743), [#7787](https://github.com/angular/angular.js/issues/7787)) | 
|  | 20 | +- **NgModel:** | 
|  | 21 | +  - ensure pattern and ngPattern use the same validator | 
|  | 22 | +  ([1be9bb9d](https://github.com/angular/angular.js/commit/1be9bb9d3527e0758350c4f7417a4228d8571440)) | 
|  | 23 | +  - make ngMinlength and ngMaxlength as standalone directives | 
|  | 24 | +  ([26d91b65](https://github.com/angular/angular.js/commit/26d91b653ac224d9d4166fea855346f5e4c4a7b4), | 
|  | 25 | +   [#6750](https://github.com/angular/angular.js/issues/6750)) | 
|  | 26 | +  - make sure the ngMinlength and ngMaxlength validators use the $validators pipeline | 
|  | 27 | +  ([5b8e7ecf](https://github.com/angular/angular.js/commit/5b8e7ecfeb722cfc7a5d92f05b57950a2aa6158b), | 
|  | 28 | +   [#6304](https://github.com/angular/angular.js/issues/6304)) | 
|  | 29 | +  - make sure the pattern validator uses the $validators pipeline | 
|  | 30 | +  ([e63d4253](https://github.com/angular/angular.js/commit/e63d4253d06ed7d344358e2c0b03311c548bc978)) | 
|  | 31 | +  - make sure the required validator uses the $validators pipeline | 
|  | 32 | +  ([e53554a0](https://github.com/angular/angular.js/commit/e53554a0e238cba7a150fd7ccf61e5e4cc0c0426), | 
|  | 33 | +   [#5164](https://github.com/angular/angular.js/issues/5164)) | 
|  | 34 | +- **jqLite:** data should store data only on Element and Document nodes | 
|  | 35 | +  ([a196c8bc](https://github.com/angular/angular.js/commit/a196c8bca82a28c08896d31f1863cf4ecd11401c)) | 
|  | 36 | +- **ngResource:** don't convert literal values into Resource objects when isArray is true | 
|  | 37 | +  ([16dfcb61](https://github.com/angular/angular.js/commit/16dfcb61aed28cdef3bfbed540e2deea6d9e9632), | 
|  | 38 | +   [#6314](https://github.com/angular/angular.js/issues/6314), [#7741](https://github.com/angular/angular.js/issues/7741)) | 
|  | 39 | + | 
|  | 40 | + | 
|  | 41 | +## Features | 
|  | 42 | + | 
|  | 43 | +- **NgModel:** introduce the $validators pipeline | 
|  | 44 | +  ([a8c7cb81](https://github.com/angular/angular.js/commit/a8c7cb81c9e67b52d5c649bf3d8cec06c5976852)) | 
|  | 45 | +- **attrs:** trigger observers for specific ng-attributes | 
|  | 46 | +  ([d9b90d7c](https://github.com/angular/angular.js/commit/d9b90d7c10a8e1bacbee0aeb7e86093cca9e8ed2), | 
|  | 47 | +   [#7758](https://github.com/angular/angular.js/issues/7758)) | 
|  | 48 | +- **input:** add $touched and $untouched states | 
|  | 49 | +  ([adcc5a00](https://github.com/angular/angular.js/commit/adcc5a00bf582d2b291c18e99093bb0854f7217c)) | 
|  | 50 | +- **ngInclude:** emit $includeContentError when HTTP request fails | 
|  | 51 | +  ([e4419daf](https://github.com/angular/angular.js/commit/e4419daf705d6d2d116ced573f72c24b5c53be1f), | 
|  | 52 | +   [#5803](https://github.com/angular/angular.js/issues/5803)) | 
|  | 53 | + | 
|  | 54 | + | 
|  | 55 | +## Performance Improvements | 
|  | 56 | + | 
|  | 57 | +- **$compile:** move ng-binding class stamping for interpolation into compile phase | 
|  | 58 | +  ([35358fdd](https://github.com/angular/angular.js/commit/35358fddc10652ef78c72cba7b7c2d5a810631d5)) | 
|  | 59 | +- **$http:** move xsrf cookie check to after cache check in $http | 
|  | 60 | +  ([dd1d189e](https://github.com/angular/angular.js/commit/dd1d189ee785a37fe1d9bddf3818152db6aa210a), | 
|  | 61 | +   [#7717](https://github.com/angular/angular.js/issues/7717)) | 
|  | 62 | +- **Scope:** change Scope#id to be a simple number | 
|  | 63 | +  ([8c6a8171](https://github.com/angular/angular.js/commit/8c6a8171f9bdaa5cdabc0cc3f7d3ce10af7b434d)) | 
|  | 64 | +- **forEach:** cache array length | 
|  | 65 | +  ([55991e33](https://github.com/angular/angular.js/commit/55991e33af6fece07ea347a059da061b76fc95f5)) | 
|  | 66 | +- **isArray:** use native Array.isArray | 
|  | 67 | +  ([751ebc17](https://github.com/angular/angular.js/commit/751ebc17f7fc7be26613db0a3cdee05fc401318b), | 
|  | 68 | +   [#7735](https://github.com/angular/angular.js/issues/7735)) | 
|  | 69 | +- **isWindow** optimize internal isWindow call | 
|  | 70 | +  ([b68ac4cb](https://github.com/angular/angular.js/commit/b68ac4cb4c172447ba0022fe6e7ce0ca4cb9407e)) | 
|  | 71 | +- **jqLite:** | 
|  | 72 | +  - cache collection length for all methods that work on a single element | 
|  | 73 | +  ([41d2eba5](https://github.com/angular/angular.js/commit/41d2eba5f8322903247280000bfc5e5e8a1c1a3e)) | 
|  | 74 | +  - improve performance of jqLite#text | 
|  | 75 | +  ([92489886](https://github.com/angular/angular.js/commit/92489886dcce3bca00fe827aeb0817297b8a175c)) | 
|  | 76 | +  - optimize adding nodes to a jqLite collection | 
|  | 77 | +  ([31faeaa7](https://github.com/angular/angular.js/commit/31faeaa7293716251ed437fa54432bb89d9d48de)) | 
|  | 78 | +  - optimize element dealocation | 
|  | 79 | +  ([e35abc9d](https://github.com/angular/angular.js/commit/e35abc9d2fac0471cbe8089dc0e33a72b8029ada)) | 
|  | 80 | +  - don't use reflection to access expandoId | 
|  | 81 | +  ([ea9a130a](https://github.com/angular/angular.js/commit/ea9a130a43d165f4f4389d01ac409dd3047efcb4)) | 
|  | 82 | +- **ngBind:** set the ng-binding class during compilation instead of linking | 
|  | 83 | +  ([fd5f3896](https://github.com/angular/angular.js/commit/fd5f3896764107635310ae52df1d80a6e08fba31)) | 
|  | 84 | +- **shallowCopy:** use Object.keys to improve performance | 
|  | 85 | +  ([04468db4](https://github.com/angular/angular.js/commit/04468db44185e3d7968abdb23d77bf623cb5021b)) | 
|  | 86 | + | 
|  | 87 | + | 
|  | 88 | +## Breaking Changes | 
|  | 89 | + | 
|  | 90 | +- **$compile:** due to [2cde927e](https://github.com/angular/angular.js/commit/2cde927e58c8d1588569d94a797e43cdfbcedaf9), | 
|  | 91 | + | 
|  | 92 | + | 
|  | 93 | +Requesting isolate scope and any other scope on a single element is an error. | 
|  | 94 | +Before this change, the compiler let two directives request a child scope | 
|  | 95 | +and an isolate scope if the compiler applied them in the order of non-isolate | 
|  | 96 | +scope directive followed by isolate scope directive. | 
|  | 97 | + | 
|  | 98 | +Now the compiler will error regardless of the order. | 
|  | 99 | + | 
|  | 100 | +If you find that your code is now throwing a `$compile:multidir` error, | 
|  | 101 | +check that you do not have directives on the same element that are trying | 
|  | 102 | +to request both an isolate and a non-isolate scope and fix your code. | 
|  | 103 | + | 
|  | 104 | +Closes #4402 | 
|  | 105 | +Closes #4421 | 
|  | 106 | +- **NgModel:** due to [1be9bb9d](https://github.com/angular/angular.js/commit/1be9bb9d3527e0758350c4f7417a4228d8571440), | 
|  | 107 | + | 
|  | 108 | + | 
|  | 109 | +If an expression is used on ng-pattern (such as `ng-pattern="exp"`) or on the | 
|  | 110 | +pattern attribute (something like on `pattern="{{ exp }}"`) and the expression | 
|  | 111 | +itself evaluates to a string then the validator will not parse the string as a | 
|  | 112 | +literal regular expression object (a value like `/abc/i`).  Instead, the entire | 
|  | 113 | +string will be created as the regular expression to test against. This means | 
|  | 114 | +that any expression flags will not be placed on the RegExp object. To get around | 
|  | 115 | +this limitation, use a regular expression object as the value for the expression. | 
|  | 116 | + | 
|  | 117 | +    //before | 
|  | 118 | +    $scope.exp = '/abc/i'; | 
|  | 119 | + | 
|  | 120 | +    //after | 
|  | 121 | +    $scope.exp = /abc/i; | 
|  | 122 | +- **Scope:** due to [8c6a8171](https://github.com/angular/angular.js/commit/8c6a8171f9bdaa5cdabc0cc3f7d3ce10af7b434d), | 
|  | 123 | +  Scope#$id is now of time number rather than string. Since the | 
|  | 124 | +id is primarily being used for debugging purposes this change should not affect | 
|  | 125 | +anyone. | 
|  | 126 | +- **forEach:** due to [55991e33](https://github.com/angular/angular.js/commit/55991e33af6fece07ea347a059da061b76fc95f5), | 
|  | 127 | +  forEach will iterate only over the initial number of items in | 
|  | 128 | +the array. So if items are added to the array during the iteration, these won't | 
|  | 129 | +be iterated over during the initial forEach call. | 
|  | 130 | + | 
|  | 131 | +This change also makes our forEach behave more like Array#forEach. | 
|  | 132 | +- **jqLite:** due to [a196c8bc](https://github.com/angular/angular.js/commit/a196c8bca82a28c08896d31f1863cf4ecd11401c), | 
|  | 133 | +  previously it was possible to set jqLite data on Text/Comment | 
|  | 134 | +nodes, but now that is allowed only on Element and Document nodes just like in | 
|  | 135 | +jQuery. We don't expect that app code actually depends on this accidental feature. | 
|  | 136 | + | 
|  | 137 | + | 
|  | 138 | + | 
|  | 139 | +<a name="1.2.18"></a> | 
|  | 140 | +# 1.2.18 ear-extendability (2014-06-13) | 
|  | 141 | + | 
|  | 142 | + | 
|  | 143 | +## Bug Fixes | 
|  | 144 | + | 
|  | 145 | +- **$compile:** | 
|  | 146 | +  - ensure transclude works at root of templateUrl | 
|  | 147 | +  ([fd420c40](https://github.com/angular/angular.js/commit/fd420c40613d02b3a3f7b14d00a98664518c28f0), | 
|  | 148 | +   [#7183](https://github.com/angular/angular.js/issues/7183), [#7772](https://github.com/angular/angular.js/issues/7772)) | 
|  | 149 | +  - bound transclusion to correct scope | 
|  | 150 | +  ([1382d4e8](https://github.com/angular/angular.js/commit/1382d4e88ec486b7749e45e6ccc864b3ec388cfe)) | 
|  | 151 | +  - don't pass transcludes to non-transclude templateUrl directives | 
|  | 152 | +  ([b9ddef2a](https://github.com/angular/angular.js/commit/b9ddef2a495b44cb5fe678b8753de0b7a369244d)) | 
|  | 153 | +  - don't pass transclude to template of non-transclude directive | 
|  | 154 | +  ([eafba9e2](https://github.com/angular/angular.js/commit/eafba9e2e5ddc668c534e930d83031d2e8dc32b9)) | 
|  | 155 | +  - fix nested isolated transclude directives | 
|  | 156 | +  ([bb931097](https://github.com/angular/angular.js/commit/bb9310974b6765c2b87e74ee7b8485a6e9c24740), | 
|  | 157 | +   [#1809](https://github.com/angular/angular.js/issues/1809), [#7499](https://github.com/angular/angular.js/issues/7499)) | 
|  | 158 | +  - pass transcludeFn down to nested transclude directives | 
|  | 159 | +  ([8df5f325](https://github.com/angular/angular.js/commit/8df5f3259aa776f28bf3d869fb1c03e10a897c84), | 
|  | 160 | +   [#7240](https://github.com/angular/angular.js/issues/7240), [#7387](https://github.com/angular/angular.js/issues/7387)) | 
|  | 161 | +- **$injector:** report circularity in circular dependency error message | 
|  | 162 | +  ([14e797c1](https://github.com/angular/angular.js/commit/14e797c1a10eabd15bf8e845b62213398bcc0f58), | 
|  | 163 | +   [#7500](https://github.com/angular/angular.js/issues/7500)) | 
|  | 164 | +- **ngResource:** don't convert literal values into Resource objects when isArray is true | 
|  | 165 | +  ([f0904cf1](https://github.com/angular/angular.js/commit/f0904cf12e4f01daa2d4fcbb20c762050125ca55), | 
|  | 166 | +   [#6314](https://github.com/angular/angular.js/issues/6314), [#7741](https://github.com/angular/angular.js/issues/7741)) | 
|  | 167 | + | 
|  | 168 | + | 
|  | 169 | +## Performance Improvements | 
|  | 170 | + | 
|  | 171 | +- **$compile:** move ng-binding class stamping for interpolation into compile phase | 
|  | 172 | +  ([81b7e5ab](https://github.com/angular/angular.js/commit/81b7e5ab0ee3fea410b16b09144359ceb99f5191)) | 
|  | 173 | +- **$http:** move xsrf cookie check to after cache check in $http | 
|  | 174 | +  ([8b86d363](https://github.com/angular/angular.js/commit/8b86d363aa252c3264201b54b57c3e34f9632d45), | 
|  | 175 | +   [#7717](https://github.com/angular/angular.js/issues/7717)) | 
|  | 176 | +- **isArray:** use native Array.isArray | 
|  | 177 | +  ([6c14fb1e](https://github.com/angular/angular.js/commit/6c14fb1eb61dc0a0552fbcb2ca3ace11c9a2f6a5)) | 
|  | 178 | +- **jqLite:** cache collection length for all methods that work on a single element | 
|  | 179 | +  ([6d418ef5](https://github.com/angular/angular.js/commit/6d418ef5e3a775577996caf0709f79f447f77025)) | 
|  | 180 | +- **ngBind:** set the ng-binding class during compilation instead of linking | 
|  | 181 | +  ([1b189027](https://github.com/angular/angular.js/commit/1b1890274e5a75553ddf9915bb23da48800275f9)) | 
|  | 182 | + | 
|  | 183 | + | 
|  | 184 | + | 
| 1 | 185 | <a name="1.3.0-beta.11"></a> | 
| 2 | 186 | # 1.3.0-beta.11 transclusion-deforestation (2014-06-06) | 
| 3 | 187 | 
 | 
|  | 
0 commit comments