OLD | NEW |
| 1 <a name="v0.10.0"></a> |
| 2 # v0.10.0 ostemad-teleportation (2014-04-17) |
| 3 |
| 4 *NOTE:* Contains significant BREAKING CHANGES! |
| 5 |
| 6 ## Bug Fixes |
| 7 |
| 8 - **DateFilter:** cache DateFormat correctly |
| 9 ([64cf96f1](https://github.com/angular/angular.dart/commit/64cf96f104f886036b6
f25d0bda5d1307f50d1d1), |
| 10 [#882](https://github.com/angular/angular.dart/issues/882)) |
| 11 - **NgA:** Do not cause a scope digest |
| 12 ([de21f4de](https://github.com/angular/angular.dart/commit/de21f4de1f39a4745ad
088805459848204457e23), |
| 13 [#810](https://github.com/angular/angular.dart/issues/810)) |
| 14 - **NgControl:** Remove dead code |
| 15 ([b30ebe0f](https://github.com/angular/angular.dart/commit/b30ebe0fbaef0e7aa39
d52a0bc8bf9cc2174386b)) |
| 16 - **angular.core:** re-export required annotations |
| 17 ([6a9ea37c](https://github.com/angular/angular.dart/commit/6a9ea37cfb444bdfb5e
99af42a091c12d949b307)) |
| 18 - **animation:** temporary fix for Animation symbol conflict |
| 19 ([82b4f3e1](https://github.com/angular/angular.dart/commit/82b4f3e12a6a5b1e079
c40c8341467089ab8fdf0)) |
| 20 - **application_factory:** add missing @MirrorsUsed targets |
| 21 ([b5e835a0](https://github.com/angular/angular.dart/commit/b5e835a0e3b4bfd8b8b
44c260bb0466caa75ab93), |
| 22 [#911](https://github.com/angular/angular.dart/issues/911)) |
| 23 - **bootstrap:** Rename bootstrapping methods |
| 24 ([155582d1](https://github.com/angular/angular.dart/commit/155582d199e25aa69ff
803b228c3c3c0e5b9ac70)) |
| 25 - **change-detection:** When two identical pure functions removed |
| 26 ([84781ef3](https://github.com/angular/angular.dart/commit/84781ef3377b4cdb92a
2cb3b98fb58468e34abc1), |
| 27 [#787](https://github.com/angular/angular.dart/issues/787), [#788](https://gi
thub.com/angular/angular.dart/issues/788)) |
| 28 - **change-detection:** properly watch map['key'] constructs |
| 29 ([03f0a4c7](https://github.com/angular/angular.dart/commit/03f0a4c72709d74c3b4
d5f3fa168189efd7e5b97), |
| 30 [#824](https://github.com/angular/angular.dart/issues/824)) |
| 31 - **cookies:** Make sure Cookies is injectable. |
| 32 ([8952cbdd](https://github.com/angular/angular.dart/commit/8952cbdd70f32e8b920
942476648b1a8f1473480), |
| 33 [#856](https://github.com/angular/angular.dart/issues/856)) |
| 34 - **core:** ensure change detection doesn't trigger an infinite loop while not i
n debug mode |
| 35 ([6ac105c9](https://github.com/angular/angular.dart/commit/6ac105c9bf662c8717d
ab811c6c41ded9eed05ea)) |
| 36 - **dirty-checking:** |
| 37 - handle simultaneous mutations and ref changes |
| 38 ([28a79bc2](https://github.com/angular/angular.dart/commit/28a79bc21ef3a4a7b08
24249bfa31a668275c76e)) |
| 39 - fix removal of watch record on disconnected group. |
| 40 ([d22899aa](https://github.com/angular/angular.dart/commit/d22899aa68f4da15673
821cb16f04d4f8c7a4dee)) |
| 41 - **doc:** add angular.core.annotation lib to docs |
| 42 ([ad2e6b0e](https://github.com/angular/angular.dart/commit/ad2e6b0e76357e3aeae
e0cd1726247059acc1f49)) |
| 43 - **docs:** reenable broken doc generation |
| 44 ([e925a143](https://github.com/angular/angular.dart/commit/e925a1430e9de53d710
e175703c57aefd4dad700)) |
| 45 - **events:** make ShadowRootEventHandler play nice with static injection |
| 46 ([d7683218](https://github.com/angular/angular.dart/commit/d76832181706a86dcef
1e0c3b60749f82a2e0e27)) |
| 47 - **example:** Adjust MirrorsUsed to make the Todo example work thru dart2js |
| 48 ([ee4a448b](https://github.com/angular/angular.dart/commit/ee4a448b9defd4c9fda
1e86f3c9c37e5465f7e21)) |
| 49 - **export:** Add missing NgController to angualr.dart |
| 50 ([7475ccc4](https://github.com/angular/angular.dart/commit/7475ccc44cec302a0bd
0745e99ec491ff3289427)) |
| 51 - **filters:** |
| 52 - handle the current locale correctly |
| 53 ([212b6f79](https://github.com/angular/angular.dart/commit/212b6f79560cc24b4a2
10c6f44e73a8408690fa9), |
| 54 [#865](https://github.com/angular/angular.dart/issues/865)) |
| 55 - pass filters to all evals |
| 56 ([25dfd32f](https://github.com/angular/angular.dart/commit/25dfd32ff9e1523ee92
20769871867111ed93c3b)) |
| 57 - **forms:** change valid_submit and invalid_submit to camelcase |
| 58 ([e5baa502](https://github.com/angular/angular.dart/commit/e5baa50235aa3ec53f0
0f87b86dab78ef5882900), |
| 59 [#793](https://github.com/angular/angular.dart/issues/793)) |
| 60 - **http:** fix header map type for http.call() |
| 61 ([a6cc826a](https://github.com/angular/angular.dart/commit/a6cc826a1bbe580dd27
74b6d53e246a838d3425d)) |
| 62 - **jasmine:** don't swallow exceptions in afterEach |
| 63 ([ae15983d](https://github.com/angular/angular.dart/commit/ae15983d2134bf0fb18
23f427654629f92c295d5)) |
| 64 - **mirror:** added missing mirrors declarations |
| 65 ([0ebb49f8](https://github.com/angular/angular.dart/commit/0ebb49f84c12ec2c4b1
1f1cf75d230f601975ebc)) |
| 66 - **mock:** export test_injection from module |
| 67 ([70546ca5](https://github.com/angular/angular.dart/commit/70546ca50dc5038ba91
1fcf972af90de492743d4)) |
| 68 - **mustache:** fix regression that fired an initial empty string |
| 69 ([c71b8cfc](https://github.com/angular/angular.dart/commit/c71b8cfc935d1599b2c
1c7cef5a08ff4caee7010), |
| 70 [#734](https://github.com/angular/angular.dart/issues/734)) |
| 71 - **ng-model:** Do not use valueAsNumber to work around dartbug.com/15788 |
| 72 ([019209e7](https://github.com/angular/angular.dart/commit/019209e79ce0752351f
2b8d74511fa39694d1e93), |
| 73 [#694](https://github.com/angular/angular.dart/issues/694)) |
| 74 - **ng-repeat:** don't use iterable.length |
| 75 ([cf2671ab](https://github.com/angular/angular.dart/commit/cf2671ab718d019a0ea
a7d7e0483cae196aaa76c)) |
| 76 - **ng-view:** correct infinite loop in RouteProvider injection |
| 77 ([be902f46](https://github.com/angular/angular.dart/commit/be902f46035b0ea9464
eafd12eb4470316ec82fe)) |
| 78 - **ng_mustache:** actually assign to _hasObservers |
| 79 ([61c953d9](https://github.com/angular/angular.dart/commit/61c953d9be3e2626e15
9cd08ac585a67f412a37e)) |
| 80 - **parser:** changes parser to throw an error when it encounters an unexpected
token |
| 81 ([7c26ab0d](https://github.com/angular/angular.dart/commit/7c26ab0dbce3b8ebbde
26716e9dc1cfda1e38c71), |
| 82 [#830](https://github.com/angular/angular.dart/issues/830), [#905](https://gi
thub.com/angular/angular.dart/issues/905)) |
| 83 - **profiler:** Fix API |
| 84 ([f032b376](https://github.com/angular/angular.dart/commit/f032b376c77b9b054d4
c2b2db7b29cb7f7c71102)) |
| 85 - **scope:** allow watching an empty string |
| 86 ([bd0d4ffd](https://github.com/angular/angular.dart/commit/bd0d4ffdded131cd304
0c6ddda32c46f6553b629)) |
| 87 - **startup:** Avoid creating rarely needed objects |
| 88 ([29bda806](https://github.com/angular/angular.dart/commit/29bda8061aa5240f544
5ac28a310990f4f3b80d0)) |
| 89 - **tagging-compiler:** support top level comments |
| 90 ([dc75b016](https://github.com/angular/angular.dart/commit/dc75b0166cc93c08bf8
1fa364c247de3d97ad2c1)) |
| 91 - **test:** fixes for latest unittest lib |
| 92 ([c8527208](https://github.com/angular/angular.dart/commit/c852720827584065fdc
5d48d5dc6d0e23770ebc1), |
| 93 [#811](https://github.com/angular/angular.dart/issues/811)) |
| 94 - **transformer:** |
| 95 - Serializing execution of transformers |
| 96 ([8b06e673](https://github.com/angular/angular.dart/commit/8b06e673d72d0e98d8a
99ef159cc4ebc6fbf8c65), |
| 97 [#889](https://github.com/angular/angular.dart/issues/889)) |
| 98 - crashes in metadata extraction while in pub serve |
| 99 ([e35a5e17](https://github.com/angular/angular.dart/commit/e35a5e17e890d739ee5
46227fef98acbc66c1112), |
| 100 [#888](https://github.com/angular/angular.dart/issues/888)) |
| 101 - Transformer needs html5lib 0.9.2 |
| 102 ([b52323e4](https://github.com/angular/angular.dart/commit/b52323e4e227d9de9a6
9134912845835733c20f7)) |
| 103 - **transformers:** |
| 104 - fix accidental breakage due to library rename. Added tests. |
| 105 ([88593eec](https://github.com/angular/angular.dart/commit/88593eec6499f937659
80087fcdf59a242ec9334)) |
| 106 - fix breakage from commit 3fb218180b17bdc9808e575e3a9aaf9928fef28b |
| 107 ([5caadbf1](https://github.com/angular/angular.dart/commit/5caadbf10304c46da55
2f4fa118351a3d2de4571)) |
| 108 - **watch_group:** remove debugging print statement |
| 109 ([93c7b9af](https://github.com/angular/angular.dart/commit/93c7b9afbec1154e086
9cb820210b401129ee4fe)) |
| 110 |
| 111 |
| 112 ## Features |
| 113 |
| 114 - **AstParser:** Made the AST parser private to the scope |
| 115 ([8944f0d9](https://github.com/angular/angular.dart/commit/8944f0d927a402f1841
60b6bfffdff664fb21ee4)) |
| 116 - **NgAnnotation:** Use `module` parameter to publish types. |
| 117 ([5ec7e831](https://github.com/angular/angular.dart/commit/5ec7e831052ce1fe5af
70dc970941a4a884a9e02), |
| 118 [#779](https://github.com/angular/angular.dart/issues/779)) |
| 119 - **NgBaseCss:** Add NgBaseCss, which adds css files to all components |
| 120 ([06fc28a3](https://github.com/angular/angular.dart/commit/06fc28a319b9c0334a9
77c4a177348c6f6a3d003)) |
| 121 - **Scope:** |
| 122 - Allow turning emission of scope stats from console. |
| 123 ([18ecd950](https://github.com/angular/angular.dart/commit/18ecd950cd815677cba
35e26eb6069da19d73300), |
| 124 [#836](https://github.com/angular/angular.dart/issues/836), [#857](https://gi
thub.com/angular/angular.dart/issues/857)) |
| 125 - Mirror Scope methods in ngScope. |
| 126 ([277f2832](https://github.com/angular/angular.dart/commit/277f283258b7dcdb499
4a1c78e6cee862386654d), |
| 127 [#850](https://github.com/angular/angular.dart/issues/850), [#858](https://gi
thub.com/angular/angular.dart/issues/858)) |
| 128 - **deploy:** Move all reflection behind separate import |
| 129 ([9bf04eba](https://github.com/angular/angular.dart/commit/9bf04eba808f7fc1f4e
5285fad7feae360918718)) |
| 130 - **directives:** Add deprecated warning to applyAuthorStyle, resetStyleInherita
nce |
| 131 ([779ccb80](https://github.com/angular/angular.dart/commit/779ccb800d6db851004
18c3e4a89a6003048bcab), |
| 132 [#838](https://github.com/angular/angular.dart/issues/838)) |
| 133 - **event_spec:** Add aaddTest to run an event test in an iit |
| 134 ([a5999863](https://github.com/angular/angular.dart/commit/a5999863f85bf172c75
bd8f213d640b55f4a5cb8)) |
| 135 - **expect:** |
| 136 - toHaveText handles shadow DOM. Deprecates JQuery.textWithShadow |
| 137 ([0384346d](https://github.com/angular/angular.dart/commit/0384346db3b715f6a67
425d81825d2d20caae74f)) |
| 138 - Move JQuery.text to Expect.toHaveText() and element.text |
| 139 ([dfe84d8f](https://github.com/angular/angular.dart/commit/dfe84d8f48e97db992d
1b70382a2e531b91a1607)) |
| 140 - **http:** Allow overriding of recording URL. |
| 141 ([6ecf1d54](https://github.com/angular/angular.dart/commit/6ecf1d54a2c29403542
7fd3f274e1fb8e098f45e), |
| 142 [#872](https://github.com/angular/angular.dart/issues/872)) |
| 143 - **karma:** Allow Firefox to execute Karma tests |
| 144 ([4a6234b3](https://github.com/angular/angular.dart/commit/4a6234b350c7c25f7de
45fceb19bceb31573cb30)) |
| 145 - **metadata extractor:** Cache the fieldMetadataExtractor for greater performan
ce |
| 146 ([63c229c7](https://github.com/angular/angular.dart/commit/63c229c7f7dab901e65
0fb1c8b155d2bc006ca30)) |
| 147 - **ng-model:** support input type=date | datetime and all other date/time varia
nts |
| 148 ([90e0e076](https://github.com/angular/angular.dart/commit/90e0e0761d2ed59b6a7
0ba31f9ceb741593bcb26), |
| 149 [#747](https://github.com/angular/angular.dart/issues/747)) |
| 150 - **ngElement:** add support for attributes |
| 151 ([581861e5](https://github.com/angular/angular.dart/commit/581861e5f428b2fe433
56be012e1fe35b9f7499a)) |
| 152 - **ngRepeat:** make use of the new change detection |
| 153 ([09871cb2](https://github.com/angular/angular.dart/commit/09871cb29b5345d4992
9895b2a490360eee69244)) |
| 154 - **parser:** Add support for named arguments. |
| 155 ([18ceb4df](https://github.com/angular/angular.dart/commit/18ceb4dfa751615cecc
73ff38d7bb1744b914c0a), |
| 156 [#762](https://github.com/angular/angular.dart/issues/762)) |
| 157 - **routing:** allow routing to view html |
| 158 ([cdc89c43](https://github.com/angular/angular.dart/commit/cdc89c43664c5d451ae
92c83dd86922ccefd807c), |
| 159 [#425](https://github.com/angular/angular.dart/issues/425), [#908](https://gi
thub.com/angular/angular.dart/issues/908)) |
| 160 - **selector:** Collect bind- attributes. More tests. Cleanup |
| 161 ([4707826b](https://github.com/angular/angular.dart/commit/4707826bd1dff114add
b16372f58b7cfc19a8ffc)) |
| 162 - **template_cache_generator:** Support custom template path resolution |
| 163 ([f5bf7eff](https://github.com/angular/angular.dart/commit/f5bf7effaacb9d2423e
033a8d7ade122eef6910c), |
| 164 [#923](https://github.com/angular/angular.dart/issues/923)) |
| 165 - **transformers:** Add angular transformers to pub for no-mirror code generatio
n |
| 166 ([3fb21818](https://github.com/angular/angular.dart/commit/3fb218180b17bdc9808
e575e3a9aaf9928fef28b)) |
| 167 - **travis:** |
| 168 - Firefox |
| 169 ([23a3e35f](https://github.com/angular/angular.dart/commit/23a3e35f22489f66692
d0559421f33cff0926ab7), |
| 170 [#801](https://github.com/angular/angular.dart/issues/801)) |
| 171 - Only submit if all the builds complete |
| 172 ([633d323d](https://github.com/angular/angular.dart/commit/633d323d672ee67ab2d
bbd1dd6711a45aa86b0b5)) |
| 173 - **view factory:** Each css file has its own <style> tag |
| 174 ([4c81989f](https://github.com/angular/angular.dart/commit/4c81989fb404279c516
ef11a5dccf067831732e0)) |
| 175 |
| 176 |
| 177 ## Performance Improvements |
| 178 |
| 179 - **DirtyCheckingChangeDetectorGroup:** Disable calls to _assertRecordsOk(). |
| 180 ([d6b9bb70](https://github.com/angular/angular.dart/commit/d6b9bb708af9b44b59e
482d1a8588c29a2a3608f), |
| 181 [#813](https://github.com/angular/angular.dart/issues/813)) |
| 182 - **compiler:** 45x speedup. Cache the attribute keys. |
| 183 ([556ef5cf](https://github.com/angular/angular.dart/commit/556ef5cfea30f210e5d
56b42a054f46bbfdcf640)) |
| 184 - **element_binder:** use every rather than reduce |
| 185 ([27e2845d](https://github.com/angular/angular.dart/commit/27e2845d69597f2bfe4
da7aa00cc8bc614e8ad19)) |
| 186 |
| 187 |
| 188 ## Breaking Changes |
| 189 |
| 190 - **NgAnnotation:** due to [5ec7e831](https://github.com/angular/angular.dart/co
mmit/5ec7e831052ce1fe5af70dc970941a4a884a9e02), |
| 191 `publishTypes` parameter is removed. |
| 192 |
| 193 ``` |
| 194 @NgDirective( |
| 195 publishTypes: [FooInt] |
| 196 ) |
| 197 class Foo extends FooInt { |
| 198 } |
| 199 ``` |
| 200 |
| 201 becomes |
| 202 |
| 203 ``` |
| 204 @NgDirective( |
| 205 module: Foo.module, |
| 206 visibility: NgDirective.LOCAL_VISIBILITY |
| 207 ) |
| 208 class Foo extends FooInt { |
| 209 module() => new Module() |
| 210 ..factory(FooInt, |
| 211 (i) => i.get(Foo), |
| 212 visibility: NgDirective.LOCAL_VISIBILITY) |
| 213 } |
| 214 ``` |
| 215 |
| 216 Closes #779 |
| 217 - **bootstrap:** due to [155582d1](https://github.com/angular/angular.dart/commi
t/155582d199e25aa69ff803b228c3c3c0e5b9ac70), |
| 218 |
| 219 - import: |
| 220 - angular/angular_dynamic.dart -> angular/application_factory.dart |
| 221 - angular/angular_static.dart -> angular/application_factory_static.dart |
| 222 |
| 223 - functions: |
| 224 - dynamicApplication() -> applicationFactory() |
| 225 - staticApplication() -> staticApplicationFactory() |
| 226 - **forms:** due to [e5baa502](https://github.com/angular/angular.dart/commit/e5
baa50235aa3ec53f00f87b86dab78ef5882900), |
| 227 All form code that uses control.valid_submit and control.invalid_submit will t
hrow an error. Instead use control.validSubmit |
| 228 and control.invalidSubmit to checkthe submission validitity on a control. |
| 229 |
| 230 Closes #793 |
| 231 - **selector_spec:** due to [c03c538d](https://github.com/angular/angular.dart/c
ommit/c03c538d31f01b7f543a03441fec613c2df2d641), |
| 232 This relaxs the assumption that directives will be created in the same order e
verywhere. |
| 233 For #801 |
| 234 - **nameing:** due to [f055ab6f](https://github.com/angular/angular.dart/commit/
f055ab6f7c4fadfdbb6a46d8bc547b304586d95c) |
| 235 Closes #902 |
| 236 |
| 237 BREAKING CHANGE: These are the renames |
| 238 |
| 239 - Concepts: |
| 240 ``` |
| 241 - Filter -> Formatter |
| 242 ``` |
| 243 |
| 244 - Importing: |
| 245 ``` |
| 246 - angular/directive/ng_a.dart -> angular/directive/a_href.dart |
| 247 - angular/filter/currency.dart -> angular/formatter/currency.dart |
| 248 - angular/filter/date.dart -> angular/formatter/date.dart |
| 249 - angular/filter/filter.dart -> angular/formatter/filter.dart |
| 250 - angular/filter/json.dart -> angular/formatter/json.dart |
| 251 - angular/filter/limit_to.dart -> angular/formatter/limit_to.dart |
| 252 - angular/filter/lowercase.dart -> angular/formatter/lowercase.dart |
| 253 - angular/filter/module.dart -> angular/formatter/module.dart |
| 254 - angular/filter/number.dart -> angular/formatter/number.dart |
| 255 - angular/filter/order_by.dart -> angular/formatter/order_by.dart |
| 256 - angular/filter/stringify.dart -> angular/formatter/stringify.dart |
| 257 - angular/filter/uppercase.dart -> angular/formatter/uppercase.dart |
| 258 ``` |
| 259 |
| 260 - Types: |
| 261 ``` |
| 262 - NgA -> AHref |
| 263 - NgAttachAware -> AttachAware |
| 264 - NgDetachAware -> DetachAware |
| 265 - NgShadowRootAware -> ShadowRootAware |
| 266 - NgFilter -> Formatter |
| 267 - NgInjectableService -> Injectable |
| 268 - AbstractNgAnnotation -> Directive |
| 269 - AbstractNgFieldAnnotation -> DirectiveAnnotation |
| 270 - NgComponent -> Component |
| 271 - NgController -> Controller |
| 272 - NgDirective -> Decorator |
| 273 - NgAnimate -> Animate |
| 274 - NgZone -> VmTurnZone |
| 275 - NgAnimationModule -> AnimationModule |
| 276 - NgCoreModule -> CoreModule |
| 277 - NgCoreDomModule -> CoreDomModule |
| 278 - NgAnimationDirective -> NgAnimation |
| 279 - NgAnimationChildrenDirective -> NgAnimationChildren |
| 280 - FilterMap -> FormatterMap |
| 281 - NgAttrMustacheDirective -> AttrMustache |
| 282 - NgTextMustacheDirective -> TextMustache |
| 283 ``` |
| 284 |
| 285 - Constants |
| 286 ``` |
| 287 - NgDirective.LOCAL_VISIBILITY -> Directive.LOCAL_VISIBILITY |
| 288 - NgDirective.CHILDREN_VISIBILITY -> Directive.CHILDREN_VISIBILITY |
| 289 - NgDirective.DIRECT_CHILDREN_VISIBILITY -> Directive.DIRECT_CHILDREN_VISIBI
LITY |
| 290 ``` |
| 291 |
| 292 <a name="v0.9.10"></a> |
| 293 # v0.9.10 llama-magnetism (2014-03-20) |
| 294 |
| 295 ## Bug Fixes |
| 296 |
| 297 - **Filter:** Add support for maps |
| 298 ([b32beecf](https://github.com/angular/angular.dart/commit/b32beecfeeecf40a053
20b29e19b1572442542cf)) |
| 299 - **Jasmine:** Execute AfterEach methods |
| 300 ([71b2855c](https://github.com/angular/angular.dart/commit/71b2855ceab53ec1afa
6b1b8950f3d12b58c4b2c)) |
| 301 - **NgModel:** ensure DOM value changes are only applied during scope.domWrite |
| 302 ([419e9189](https://github.com/angular/angular.dart/commit/419e9189b482fc05414
6b51a44613ff543efb485)) |
| 303 - **NgModelValidators:** ensure all validators can properly toggle attribute val
ues |
| 304 ([98143034](https://github.com/angular/angular.dart/commit/98143034287f4a6adfd
08f4064e4a751c569b108)) |
| 305 - **NodeAttrs:** lazy init of observer listeners |
| 306 ([144eb4c7](https://github.com/angular/angular.dart/commit/144eb4c76598a73a251
477efc91c1460f5052937)) |
| 307 - **animation:** correct broken build http://dartbug.com/17634 |
| 308 ([9891f333](https://github.com/angular/angular.dart/commit/9891f3339207e921a0a
50cac3d855eb4606b41bb)) |
| 309 - **change_detection:** |
| 310 - should properly support objects with equality |
| 311 ([9b480dad](https://github.com/angular/angular.dart/commit/9b480dad5f9eaf8609
9c6c1760a837d1eb6d6442), |
| 312 [#735](https://github.com/angular/angular.dart/issues/735), [#670](https://gi
thub.com/angular/angular.dart/issues/670)) |
| 313 - leaking watch records when removing deeply nested watch_groups |
| 314 ([1ba5befb](https://github.com/angular/angular.dart/commit/1ba5befba3392769752
c1d163de7c691234fca15), |
| 315 [#700](https://github.com/angular/angular.dart/issues/700)) |
| 316 - don't call reactionFn on deleted scope |
| 317 ([0aacdc4f](https://github.com/angular/angular.dart/commit/0aacdc4f73b79f874a7
8783308feea471279db0d)) |
| 318 - **compiler:** Remove the Block/BlockFactory typedefs |
| 319 ([9b790f49](https://github.com/angular/angular.dart/commit/9b790f490b16c283417
7df75f235da8d3347aa64)) |
| 320 - **component:** revert regression of injecting Element/Node into Component |
| 321 ([d9fc724e](https://github.com/angular/angular.dart/commit/d9fc724e56e99b26192
e41eaef46607760f4ac2a)) |
| 322 - **forms:** |
| 323 - ensure models are validated when validator attributes change |
| 324 ([0622f3a9](https://github.com/angular/angular.dart/commit/0622f3a969b99b06c5f
07da10ceb756b720a3331)) |
| 325 - consider forms as pristine only when all the inner models are non-dirty |
| 326 ([4458ce8e](https://github.com/angular/angular.dart/commit/4458ce8e0035f8250cc
35ec02906f63ba33c8974)) |
| 327 - store models instead of controls within the collection of errors |
| 328 ([2928ae71](https://github.com/angular/angular.dart/commit/2928ae71b694be5e2a4
7eaa2cdd1d602f8ae26e9)) |
| 329 - **i18n:** properly restore locale after test WARNING |
| 330 ([f16536ee](https://github.com/angular/angular.dart/commit/f16536eed937bcdb542
1ac61059ad40fe58ed2ef)) |
| 331 - **jasmine syntax:** Drop the wrapFn concept and let `_specs.dart` handle the s
ync wrapper |
| 332 ([1e971e6b](https://github.com/angular/angular.dart/commit/1e971e6b7c65958bbf9
a4779fbac944afaebb278)) |
| 333 - **jquery:** Deprecate renderedText() in favour of JQuery.textWithShadow() |
| 334 ([364d9ff7](https://github.com/angular/angular.dart/commit/364d9ff712a635cd3b0
d86bff9e663105ffce86b)) |
| 335 - **ng-class:** remove previously registered watch |
| 336 ([8b54f5e6](https://github.com/angular/angular.dart/commit/8b54f5e6c8d99a4b953
1edb78ec10e8177e53407), |
| 337 [#725](https://github.com/angular/angular.dart/issues/725)) |
| 338 - **ng-repeat:** should correctly handle detached state |
| 339 ([775bbce4](https://github.com/angular/angular.dart/commit/775bbce4060c3828c1c
baeffcb8fc4092f46868b), |
| 340 [#697](https://github.com/angular/angular.dart/issues/697)) |
| 341 - **ng-style:** watch in RO mode |
| 342 ([51ee3298](https://github.com/angular/angular.dart/commit/51ee32987464832ddca
113528d899ea27f0b6f40), |
| 343 [#721](https://github.com/angular/angular.dart/issues/721)) |
| 344 - **presubmit:** |
| 345 - Set new token; correct env variable name |
| 346 ([53aeb4aa](https://github.com/angular/angular.dart/commit/53aeb4aaea69bcd0ca2
1e6430b02a50de997f991)) |
| 347 - use https protocol for push |
| 348 ([a2845a50](https://github.com/angular/angular.dart/commit/a2845a50e680555f4ef
129247d1d2045233a5f0f)) |
| 349 - correct presubmit authentication |
| 350 ([8b430d10](https://github.com/angular/angular.dart/commit/8b430d100c6c99267c3
459310a762e6e831b4727)) |
| 351 - **scope:** |
| 352 - allow concurrent fire/add/remove on listeners |
| 353 ([e6689e37](https://github.com/angular/angular.dart/commit/e6689e37c800682a81d
7690c3b05baf732c307c6)) |
| 354 - should allow removing listener during an event |
| 355 ([4662d494](https://github.com/angular/angular.dart/commit/4662d49477fdf0b5ef0
1f8d4f8aed8b87d77ea66), |
| 356 [#695](https://github.com/angular/angular.dart/issues/695)) |
| 357 - add scope id for easier debugging. |
| 358 ([5a368087](https://github.com/angular/angular.dart/commit/5a36808736efae4760c
8f9fdc5b291353ca9ec02)) |
| 359 - **tagging compiler:** |
| 360 - a text child after a directive child |
| 361 ([81030dde](https://github.com/angular/angular.dart/commit/81030dde483bf0b4bb9
43f31408733f3238286ee)) |
| 362 - ancestor injectables |
| 363 ([81ad184d](https://github.com/angular/angular.dart/commit/81ad184d928625a97e1
5fd8baf3e6df21cf1efae)) |
| 364 - Sibling templates |
| 365 ([167b4909](https://github.com/angular/angular.dart/commit/167b4909fca4c72a903
ccc695043f6a13d1a4b98)) |
| 366 - Transclusions with an existing ElementBinder |
| 367 ([0e4cb8ed](https://github.com/angular/angular.dart/commit/0e4cb8ed82f98e6a3e9
dc2d131394a4d769cb0cc)) |
| 368 - Empty transclusions |
| 369 ([b71a5009](https://github.com/angular/angular.dart/commit/b71a50092d6a529e21e
06f4080bbe50873eac997)) |
| 370 - **zone:** Avoid silently ignoring uncaught exceptions by default. |
| 371 ([7bb1944e](https://github.com/angular/angular.dart/commit/7bb1944e3726dea221e
6ab33d4bc6f1de6a364c8), |
| 372 [#710](https://github.com/angular/angular.dart/issues/710)) |
| 373 |
| 374 ## Features |
| 375 |
| 376 - **NgModel:** introduce parsers and formatters |
| 377 ([bed9fe15](https://github.com/angular/angular.dart/commit/bed9fe15f8b89b296a9
b519268bd3e3c326b6265)) |
| 378 - **Scope:** Improve ScopeStats reporting |
| 379 ([1954e9e2](https://github.com/angular/angular.dart/commit/1954e9e293203466a50
f3931126ebde0335b885d), |
| 380 [#744](https://github.com/angular/angular.dart/issues/744)) |
| 381 - **compiler:** |
| 382 - Make the TaggingCompiler the default compiler |
| 383 ([3ed50b5e](https://github.com/angular/angular.dart/commit/3ed50b5ebdf8013a3f9
d354846770c1e9f75497a)) |
| 384 - Tagging compiler |
| 385 ([59516afb](https://github.com/angular/angular.dart/commit/59516afb37d1dd33dbd
ca9e705646dad1afafd1d)) |
| 386 - Initial TagggingCompiler implementation |
| 387 ([80163401](https://github.com/angular/angular.dart/commit/80163401e1524c2b5c9
0a8c0d66b263370a6c402)) |
| 388 - ViewFactory now takes a list of ElementBinders |
| 389 ([eb559ad0](https://github.com/angular/angular.dart/commit/eb559ad05ca33e6c985
ceed492f20c9b2a88c5b9)) |
| 390 - Add an ElementBinder class and return it from Selector |
| 391 ([41bc9a40](https://github.com/angular/angular.dart/commit/41bc9a40a17521285eb
7d342a5590c2a7b09be93)) |
| 392 - **core_dom:** introduce NgElement |
| 393 ([1afa0b61](https://github.com/angular/angular.dart/commit/1afa0b61da45038ea19
2f34208ffb9e2a6081fd9)) |
| 394 - **doc:** |
| 395 - Animation library documentation updates and fixes. |
| 396 ([613030a0](https://github.com/angular/angular.dart/commit/613030a04c584040a09
cade196945fde9fa830cc), |
| 397 [#760](https://github.com/angular/angular.dart/issues/760)) |
| 398 - Library description for angular.animate |
| 399 ([0576f278](https://github.com/angular/angular.dart/commit/0576f27841c8842b0d8
4bfae8c4b202c39833beb)) |
| 400 - **element binder:** |
| 401 - Make ElementBinder non-recursive and create an external tree |
| 402 ([811b4607](https://github.com/angular/angular.dart/commit/811b46073af9fe2f7e3
53ce1b811898c1557bad8)) |
| 403 - ElementBinder.bind |
| 404 ([b1a518bd](https://github.com/angular/angular.dart/commit/b1a518bd678ab4a4d53
f8915a9e3c34c87c5d3c1)) |
| 405 - **filters:** revert filter being restricted to top level |
| 406 ([66cda204](https://github.com/angular/angular.dart/commit/66cda2046ea84d29edd
7a478509565989834e391)) |
| 407 - **forms:** append valid/invalid CSS classes for each validator on all controls |
| 408 ([574065f5](https://github.com/angular/angular.dart/commit/574065f5b8183f4b6d9
ac7b66a2ae501a21ee2ac)) |
| 409 - **jasmine:** beforeEachModule syntax and injectifying its |
| 410 ([4019046f](https://github.com/angular/angular.dart/commit/4019046f4b56a629f6d
b71a6e1caff82b728940a), |
| 411 [#727](https://github.com/angular/angular.dart/issues/727)) |
| 412 - **jquery:** Add shadowRoot() and use it in templateurl_spec |
| 413 ([e1745c60](https://github.com/angular/angular.dart/commit/e1745c601a22030b424
1a93589cb13a4935049d1)) |
| 414 - **mock zone:** isAsyncQueueEmpty |
| 415 ([c834837d](https://github.com/angular/angular.dart/commit/c834837dcb5b9220b15
70c7f96785d763a7b0968)) |
| 416 - **mustache:** Move unobserved mustache attributes to the flush phase |
| 417 ([56647a36](https://github.com/angular/angular.dart/commit/56647a36d67fe3b4b28
967a78b193e90e0a65152), |
| 418 [#734](https://github.com/angular/angular.dart/issues/734)) |
| 419 - **selector:** DirectiveSelector is real now: matchElement, matchText |
| 420 ([eb4422a9](https://github.com/angular/angular.dart/commit/eb4422a9a2d0d0dbdb2
fb9d04fdcbcae99b65757)) |
| 421 - **spec:** Ignore ng-binding classes in html() |
| 422 ([441daf79](https://github.com/angular/angular.dart/commit/441daf79a4e3fca8f42
379022f078327d4e69e59)) |
| 423 - **tagging compiler:** |
| 424 - Create fewer ElementBinder lists |
| 425 ([7e185219](https://github.com/angular/angular.dart/commit/7e185219a9a477330ea
8d2074bd9dad385bedd4b)) |
| 426 - Support comments |
| 427 ([6fe02a07](https://github.com/angular/angular.dart/commit/6fe02a07431231a39c6
e174327b36533b91f0073)) |
| 428 - **travis:** Seperate Chrome and Dartium into two different jobs. |
| 429 ([7c5bdb01](https://github.com/angular/angular.dart/commit/7c5bdb01dae79335406
79e070ace5dc9fe223cd2)) |
| 430 - **EventHandler** Add support for on-* style events |
| 431 ([c28e6a02](https://github.com/angular/angular.dart/commit/c28e6a02d7ec3386c85
6bd6aa79f8ddee2ff09b9)) |
| 432 |
| 433 <a name="v0.9.9"></a> |
| 434 # v0.9.9 glutinous-waterfall (2014-03-10) |
| 435 |
| 436 |
| 437 ## Bug Fixes |
| 438 |
| 439 - **DateFilter:** |
| 440 - should work on other locale |
| 441 ([d7e77de9](https://github.com/angular/angular.dart/commit/d7e77de92fd61fabd78
42eb0acb4d9236935dd76), |
| 442 [#604](https://github.com/angular/angular.dart/issues/604)) |
| 443 - fix a wrong type |
| 444 ([cec3edad](https://github.com/angular/angular.dart/commit/cec3edad1944a841188
2b0a87ea6193c25513392), |
| 445 [#579](https://github.com/angular/angular.dart/issues/579)) |
| 446 - **Directive:** remove publishAs from NgDirective to avoid confusion. |
| 447 ([7ee587f6](https://github.com/angular/angular.dart/commit/7ee587f6f959d89cfdd
87b0f615510405d693db9), |
| 448 [#396](https://github.com/angular/angular.dart/issues/396)) |
| 449 - **MetadataExtractor:** ignore typedefs |
| 450 ([37f1c321](https://github.com/angular/angular.dart/commit/37f1c32118383b250ba
2db6f21adf1737beb2b0a), |
| 451 [#524](https://github.com/angular/angular.dart/issues/524)) |
| 452 - **NgAttachAware:** revert to original behavior and define stronger test |
| 453 ([500446d1](https://github.com/angular/angular.dart/commit/500446d1f6d548bbc00
7957017cf7cae74c7f30c)) |
| 454 - **NgAttrMustacheDirective:** support parsing of multiline attribute values |
| 455 ([a37e1576](https://github.com/angular/angular.dart/commit/a37e15761b5bbad2f32
308ccd0f765bd977fb0ca)) |
| 456 - **NgComponent:** |
| 457 - Handle errors while loading CSS |
| 458 ([b5aa130f](https://github.com/angular/angular.dart/commit/b5aa130f68c589e2e4a
8c6fad1dbd69078608be1), |
| 459 [#411](https://github.com/angular/angular.dart/issues/411)) |
| 460 - Drop cssUrls, leaving cssUrl only |
| 461 ([92ed26fb](https://github.com/angular/angular.dart/commit/92ed26fb1a00a239c16
4428979a2f53226ae4b2c)) |
| 462 - attach method was called earlier rathe then later. |
| 463 ([3c594130](https://github.com/angular/angular.dart/commit/3c594130589f43a6f82
374a87bf498f2d5645ab5)) |
| 464 - **NgForm:** |
| 465 - always return the first matching control when using map notation on a NgForm
instance |
| 466 ([95e66d6b](https://github.com/angular/angular.dart/commit/95e66d6bb28c3075952
e31cdbce3c044ed00fc8f)) |
| 467 - use map notation for controls and dot notation for instance properties |
| 468 ([0cc1217b](https://github.com/angular/angular.dart/commit/0cc1217b80ceb2b9dd3
83d0e51e128be40bec9d4)) |
| 469 - **NgModelValidators:** ensure that number input types render invalid when non-
numeric characters are present |
| 470 ([476a8dbf](https://github.com/angular/angular.dart/commit/476a8dbfac40f695a02
e49a8e76590135e5867d2)) |
| 471 - **NodeCursor:** Removes nodeList() in favor of current |
| 472 ([aaae1d60](https://github.com/angular/angular.dart/commit/aaae1d60832b331be62
b0fd94c65935ce68b2856), |
| 473 [#644](https://github.com/angular/angular.dart/issues/644)) |
| 474 - **WatchGroup:** don't call reaction functions on removed WatchGroups |
| 475 ([a7cabe35](https://github.com/angular/angular.dart/commit/a7cabe35a0a8bd9288d
517df3885245242da3676)) |
| 476 - **angular:** export GetterCache from dccd |
| 477 ([c1655e8c](https://github.com/angular/angular.dart/commit/c1655e8c51b1133da70
f04e7630e733557806a9e)) |
| 478 - **binding:** call attach when attribute is not specified |
| 479 ([1cb8eb9f](https://github.com/angular/angular.dart/commit/1cb8eb9f135c55a75af
2a0ada6401e5c8594b03b)) |
| 480 - **block_factory:** |
| 481 - should not load template or call onShadowRoot when scope is destroyed |
| 482 ([2e403504](https://github.com/angular/angular.dart/commit/2e403504845f2899dd8
b80f424a68eeb1c0e3fe6)) |
| 483 - should not call attach when scope is destroyed |
| 484 ([72708e33](https://github.com/angular/angular.dart/commit/72708e3337deb95a579
cd8181a688e3e7859ebff)) |
| 485 - **bouncing_balls:** ball number can not go below 0 |
| 486 ([6de4f810](https://github.com/angular/angular.dart/commit/6de4f810f4bcdaf6397
39a97816cac8006eb5faf)) |
| 487 - **change-detection:** |
| 488 - correctly process watch registration inside reaction FN. |
| 489 ([d6bc9ab8](https://github.com/angular/angular.dart/commit/d6bc9ab871490148f93
7f0587f2e9d16beca62ee)) |
| 490 - Fix the handling of NaN & string values for maps |
| 491 ([156d6386](https://github.com/angular/angular.dart/commit/156d6386f45c4f6c467
2432de28b1245da1c1515)) |
| 492 - Fix for comparing string by value |
| 493 ([11f1bd87](https://github.com/angular/angular.dart/commit/11f1bd872a474bd2b99
f40027003c356abff6e21)) |
| 494 - reset next/prev on watchGroup.marker |
| 495 ([4dfa2676](https://github.com/angular/angular.dart/commit/4dfa267698b56017fae
4b491b855767f030f3598)) |
| 496 - delay processing watch registration inside reaction fn. |
| 497 ([cd4e2e3d](https://github.com/angular/angular.dart/commit/cd4e2e3d2dbab33e31c
e1cfc3273e37d55ac9008)) |
| 498 - remove memory leak, use iterator |
| 499 ([75fbded7](https://github.com/angular/angular.dart/commit/75fbded7ad2691eb439
1c56a595ab488842a85ed)) |
| 500 - remove memory leak |
| 501 ([847af41f](https://github.com/angular/angular.dart/commit/847af41fd66d9016e32
cf5b3d8f86e91bae7e6d9)) |
| 502 - corrected adding group to sibling which had children |
| 503 ([8583d08b](https://github.com/angular/angular.dart/commit/8583d08baf60ed63940
b3ff38967877327ccf03d)) |
| 504 - **change-detector:** handle double.NAN for collections (in JS) |
| 505 ([07f9b240](https://github.com/angular/angular.dart/commit/07f9b240008a143964d
29153589c078aa85ddd09)) |
| 506 - **compiler:** |
| 507 - don't wait indefinitly for non-null value on =>! |
| 508 ([5451d63d](https://github.com/angular/angular.dart/commit/5451d63d135b271a52a
f522343e67abfd30d7cb8)) |
| 509 - ensure parent controllers are exposed within the scope of their children |
| 510 ([cad8cc4a](https://github.com/angular/angular.dart/commit/cad8cc4a64a223c677f
420acb800da89b1d0061c), |
| 511 [#602](https://github.com/angular/angular.dart/issues/602)) |
| 512 - support filters in attribute expressions |
| 513 ([8f020f99](https://github.com/angular/angular.dart/commit/8f020f998e8a4b7d5b5
95e5c44086fa2628fe8b3), |
| 514 [#571](https://github.com/angular/angular.dart/issues/571), [#580](https://gi
thub.com/angular/angular.dart/issues/580)) |
| 515 - **di:** Upgrade dependency of package di preventing problems with dart sdk 1.1
resolves #408 |
| 516 ([1f85a8ce](https://github.com/angular/angular.dart/commit/1f85a8cee164d85d6ee
d43e7604a0190d1542d84), |
| 517 [#408](https://github.com/angular/angular.dart/issues/408), [#583](https://gi
thub.com/angular/angular.dart/issues/583)) |
| 518 - **dirty_checking_change_detector:** correctly truncate collection change recor
d |
| 519 ([c1937b4e](https://github.com/angular/angular.dart/commit/c1937b4eab87e227d2a
a3b126740c93a6c75a353), |
| 520 [#692](https://github.com/angular/angular.dart/issues/692)) |
| 521 - **doc:** Correct markdown for ElementProbe |
| 522 ([5783de44](https://github.com/angular/angular.dart/commit/5783de448333cfd0d40
8c4c9663f1cc7e32a6350)) |
| 523 - Use a consistent name for the library |
| 524 ([3f541fa4](https://github.com/angular/angular.dart/commit/3f541fa49a9543e8d3c
7a6c416b04934c591bf74)) |
| 525 - **doc-gen:** |
| 526 - add docviewer flags for generating the new angulardart docs |
| 527 ([99d9f2ae](https://github.com/angular/angular.dart/commit/99d9f2ae843fbda320f
87e505aecb8ba2f2db4ed)) |
| 528 - dartbug.com/16752 |
| 529 ([9a1ef31d](https://github.com/angular/angular.dart/commit/9a1ef31d66f151f22b7
9893e11251a6780605257)) |
| 530 - **dynamic_parser:** Handle reserved words correctly |
| 531 ([271ecec0](https://github.com/angular/angular.dart/commit/271ecec05e21b1eddb7
663dd8297ab4b9ead4d19), |
| 532 [#614](https://github.com/angular/angular.dart/issues/614)) |
| 533 - **eval access:** Do not crash on null cached value |
| 534 ([bbcbd3e7](https://github.com/angular/angular.dart/commit/bbcbd3e70f289c1fcc2
32a38ac89038f83342d3c), |
| 535 [#424](https://github.com/angular/angular.dart/issues/424)) |
| 536 - **forms:** |
| 537 - do not reset input fields on valid submission |
| 538 ([24e9c3dd](https://github.com/angular/angular.dart/commit/24e9c3dd3f1cc46bdb8
092f6deac0e4ad8732c1d)) |
| 539 - ensure fields, fieldsets & forms are marked as dirty when modified |
| 540 ([ad60d55a](https://github.com/angular/angular.dart/commit/ad60d55a2f8cdd6c7f0
a246efdc79a5af85a833e)) |
| 541 - treat <input> with no type as type="text" |
| 542 ([8f0a8a7f](https://github.com/angular/angular.dart/commit/8f0a8a7fe87517a65b2
c5ed2857c90ea87898a0b)) |
| 543 - **generator:** |
| 544 - remove invalid sort on elements |
| 545 ([e2a00abe](https://github.com/angular/angular.dart/commit/e2a00abe371bb2d9d3c
1d3c19849e075a32e92e4), |
| 546 [#554](https://github.com/angular/angular.dart/issues/554)) |
| 547 - write files in sorted order for predictable tests |
| 548 ([79b7525a](https://github.com/angular/angular.dart/commit/79b7525a790ce73a50c
2874e2f43110fbce61d16)) |
| 549 - Write URI in sorted order to prevent SHA churn |
| 550 ([217839ef](https://github.com/angular/angular.dart/commit/217839ef3495506313a
226681a6c10a52e71df0f)) |
| 551 - **http_spec:** implement lastModified getter |
| 552 ([e719e75e](https://github.com/angular/angular.dart/commit/e719e75e15ca01048d1
212ec403b8ee5ba3bfa74)) |
| 553 - **introspection:** |
| 554 - Better error messages and checked mode support |
| 555 ([9ad2a686](https://github.com/angular/angular.dart/commit/9ad2a686860b21e5555
87dd2986ca77b969919cc)) |
| 556 - Export all symbols. And a test. |
| 557 ([691c4cab](https://github.com/angular/angular.dart/commit/691c4cab02115963fa9
74e55f5ee8f196c2aef13)) |
| 558 - warnings |
| 559 ([70d83c53](https://github.com/angular/angular.dart/commit/70d83c53c350920fc27
942a9c3b4c83dff5c10b5), |
| 560 [#497](https://github.com/angular/angular.dart/issues/497)) |
| 561 - **ng-attr:** remove camel-cased dom attributes |
| 562 ([b5e45117](https://github.com/angular/angular.dart/commit/b5e45117c17fdd07d5d
b659815eb49c2dca17b84), |
| 563 [#567](https://github.com/angular/angular.dart/issues/567)) |
| 564 - **ng-class:** array syntax should not insert nulls |
| 565 ([b982e326](https://github.com/angular/angular.dart/commit/b982e326cd7d3fbd4e5
3fbe7b65ba9adc0f5cf64), |
| 566 [#513](https://github.com/angular/angular.dart/issues/513)) |
| 567 - **ng-event:** don't double digest |
| 568 ([c38989a4](https://github.com/angular/angular.dart/commit/c38989a4496e47813d7
7e3d0cc4868691af7e166)) |
| 569 - **ng-pluralize:** use ${..} to interpolate |
| 570 ([a630487d](https://github.com/angular/angular.dart/commit/a630487d302e396a920
e02c8db5d256a81d3dd1a), |
| 571 [#572](https://github.com/angular/angular.dart/issues/572)) |
| 572 - **ng-value:** Add ng-value support for checked/radio/option |
| 573 ([8fc2c0f4](https://github.com/angular/angular.dart/commit/8fc2c0f49aabc53ee62
40ad8063ecf6c9c8b8a1f)) |
| 574 - **ngControl:** unregister control from parent on detach |
| 575 ([4c9b8044](https://github.com/angular/angular.dart/commit/4c9b804454e3e0f0cb6
80d9359834692fc9ec304), |
| 576 [#684](https://github.com/angular/angular.dart/issues/684)) |
| 577 - **ngModel:** |
| 578 - ensure checkboxes and radio buttons are flagged as dirty when changed |
| 579 ([5766a6a1](https://github.com/angular/angular.dart/commit/5766a6a173dc1d65b92
93fd5bd0bcbc21b0791ec), |
| 580 [#569](https://github.com/angular/angular.dart/issues/569), [#585](https://gi
thub.com/angular/angular.dart/issues/585)) |
| 581 - process input type=number according to convention, using valueAsNumber |
| 582 ([cf0160b8](https://github.com/angular/angular.dart/commit/cf0160b8c316a39ac9d
0fcce843c6f764429a1d4), |
| 583 [#574](https://github.com/angular/angular.dart/issues/574), [#577](https://gi
thub.com/angular/angular.dart/issues/577)) |
| 584 - ensure validation occurs when the model value changes upon digest |
| 585 ([f34e0b31](https://github.com/angular/angular.dart/commit/f34e0b31a6f2f42457a
6d1a1b5b5aaa7e2ef86fe)) |
| 586 - evaluate user input using onInput instead of onKeyDown |
| 587 ([64442974](https://github.com/angular/angular.dart/commit/64442974157211b49ba
d6f28182a15aedd652efd)) |
| 588 - **ngShow:** Add/remove ng-hide class instead of ng-show class |
| 589 ([0b88d2e8](https://github.com/angular/angular.dart/commit/0b88d2e8102db8b89f3
8b00c277b9023b260285e), |
| 590 [#521](https://github.com/angular/angular.dart/issues/521)) |
| 591 - **package.json:** add repo, licenses and switch to devDependencies |
| 592 ([d099db59](https://github.com/angular/angular.dart/commit/d099db5944e2287fbf9
7a13b1aa73f8082652e09), |
| 593 [#544](https://github.com/angular/angular.dart/issues/544), [#545](https://gi
thub.com/angular/angular.dart/issues/545)) |
| 594 - **parser:** |
| 595 - disallow filters in a chain and inside expressions |
| 596 ([5bcea649](https://github.com/angular/angular.dart/commit/5bcea6492f6d0fd39ba
316fa3b241c50bb94de8d)) |
| 597 - Correctly distinguish NoSuchMethodError |
| 598 ([bde52abe](https://github.com/angular/angular.dart/commit/bde52abebd026d0226b
90bd84380a24d7a8eab4e)) |
| 599 - **parser, scope:** Allow nulls in binary operations. |
| 600 ([59811752](https://github.com/angular/angular.dart/commit/59811752f57a87fe8f6
a6313fd8764f4d45b4c5c), |
| 601 [#646](https://github.com/angular/angular.dart/issues/646)) |
| 602 - **parser_generator:** use parser getter/setter generator instead |
| 603 ([42c8d8c8](https://github.com/angular/angular.dart/commit/42c8d8c89087932c1be
19965b6b649075919287d)) |
| 604 - **readme:** Read the Travis badge |
| 605 ([6fe5692b](https://github.com/angular/angular.dart/commit/6fe5692b58e71c86f20
01659b9f8f78016d74ebf)) |
| 606 - **routing:** correctly scope routing to ng-app |
| 607 ([3ab250a7](https://github.com/angular/angular.dart/commit/3ab250a706c84542c9e
618d9e98eea81d99a5d22)) |
| 608 - **scope:** |
| 609 - fix null comparisons |
| 610 ([fb0fe0e3](https://github.com/angular/angular.dart/commit/fb0fe0e3f8adb243126
46ee9bd01502be605ae7e), |
| 611 [#646](https://github.com/angular/angular.dart/issues/646)) |
| 612 - incorrect stage message |
| 613 ([2169a950](https://github.com/angular/angular.dart/commit/2169a950404bf8c68a9
f2d239580a27caf1d9779)) |
| 614 - correctly setup NgZone onError handler with ExceptionHandler |
| 615 ([e8bc580c](https://github.com/angular/angular.dart/commit/e8bc580cfb2d3995fd1
13916894b26e98d07b8d6)) |
| 616 - return null to supress an analyzer error |
| 617 ([fad457e9](https://github.com/angular/angular.dart/commit/fad457e96f2c6ee17e6
ce3c14a499e230e630ca5), |
| 618 [#594](https://github.com/angular/angular.dart/issues/594)) |
| 619 - correctly handle canceled listeners bookkeeping |
| 620 ([259ac5b1](https://github.com/angular/angular.dart/commit/259ac5b147652522a92
b40a12298891dd491c9a7)) |
| 621 - should not trigger assertions on fork |
| 622 ([484f03dc](https://github.com/angular/angular.dart/commit/484f03dcce7bdc20a10
1d795d85eee58484d02c9)) |
| 623 - skip scopes without event on broadcast |
| 624 ([ae22a6f3](https://github.com/angular/angular.dart/commit/ae22a6f3f82e321a923
a64a573b000485a3fd70e)) |
| 625 - createChild now requires context |
| 626 ([6722e1a4](https://github.com/angular/angular.dart/commit/6722e1a45bb65a86211
c2eb3cef2a264bc7e871e)) |
| 627 - improve error msg on unstable model |
| 628 ([c9bf23a0](https://github.com/angular/angular.dart/commit/c9bf23a095cc1863b70
75fa7bd2fd6bb6fbc9d38)) |
| 629 - allow sending emit/broadcast when no on() |
| 630 ([d9dfe0f8](https://github.com/angular/angular.dart/commit/d9dfe0f830f2df3fb1e
811d6891c684f5080ee7c)) |
| 631 - Use Iterable instead of List |
| 632 ([951fa178](https://github.com/angular/angular.dart/commit/951fa1783afa65f410a
2b82249850eed458ed294), |
| 633 [#565](https://github.com/angular/angular.dart/issues/565)) |
| 634 - use correct filters when digesting scope tree |
| 635 ([95f6503f](https://github.com/angular/angular.dart/commit/95f6503f1390159eeed
fe6d14ea60ec0d70b9381)) |
| 636 - **select:** Corrected NPE if select multiple nested in ng-if |
| 637 ([6228692b](https://github.com/angular/angular.dart/commit/6228692bbf0cc269999
cb3cb77374bb815120a4b), |
| 638 [#428](https://github.com/angular/angular.dart/issues/428)) |
| 639 - **selector:** Allow two directives with the same selector |
| 640 ([467b935e](https://github.com/angular/angular.dart/commit/467b935ee93a87913cf
c8a025973ffd00e31bf2d), |
| 641 [#471](https://github.com/angular/angular.dart/issues/471), [#481](https://gi
thub.com/angular/angular.dart/issues/481)) |
| 642 - **template_cache_generator:** support traversal of partial files |
| 643 ([f918d4dd](https://github.com/angular/angular.dart/commit/f918d4dd9ac7c777b01
97a700fd6af58103e4129), |
| 644 [#662](https://github.com/angular/angular.dart/issues/662)) |
| 645 - **watch_group:** prevent removed watches from firing |
| 646 ([a558a26f](https://github.com/angular/angular.dart/commit/a558a26ffdafddec986
f4fafab5bbe55ef6b0b48)) |
| 647 |
| 648 |
| 649 ## Features |
| 650 |
| 651 - **Animation:** Animation for AngularDart. |
| 652 ([5a36e773](https://github.com/angular/angular.dart/commit/5a36e773482bce7b4a7
97613516a56d1b628035b), |
| 653 [#635](https://github.com/angular/angular.dart/issues/635)) |
| 654 - introduce ng-animate and ng-animate-children. |
| 655 ([88d2af6f](https://github.com/angular/angular.dart/commit/88d2af6f81b11518cf3
59b85066a0f0677140b16), |
| 656 [#661](https://github.com/angular/angular.dart/issues/661)) |
| 657 - **NgForm:** provide access to non-uniquely named control instances via form.co
ntrols |
| 658 ([6099c037](https://github.com/angular/angular.dart/commit/6099c0373f3b59bbeea
8c1dfd585bbb6a50a1833), |
| 659 [#642](https://github.com/angular/angular.dart/issues/642)) |
| 660 - **NgModelValidator:** |
| 661 - perform number validations on range input elements |
| 662 ([710cd5b0](https://github.com/angular/angular.dart/commit/710cd5b0ff0a7b2dfe7
1536e3455523d3c939b5f), |
| 663 [#682](https://github.com/angular/angular.dart/issues/682)) |
| 664 - provide support for min and max validations on number input fields |
| 665 ([7dc55fbf](https://github.com/angular/angular.dart/commit/7dc55fbff47b99eb5e6
4cd63192a7a3e7b8eae88)) |
| 666 - **Scope:** Brand new scope implementation which takes advantage of the new cha
nge detection |
| 667 ([390aea5e](https://github.com/angular/angular.dart/commit/390aea5ee4318855584
911afb2ce4a2b86fc718c)) |
| 668 - **block:** |
| 669 - Kill block events. |
| 670 ([27308e9e](https://github.com/angular/angular.dart/commit/27308e9e334477370a3
417535af92540bfa3d24f), |
| 671 [#659](https://github.com/angular/angular.dart/issues/659)) |
| 672 - Chain ElementProbe parents; add to shadowRoot |
| 673 ([b77534e4](https://github.com/angular/angular.dart/commit/b77534e4cc8ed1996bf
d1d5cc27f07e81748fb95), |
| 674 [#625](https://github.com/angular/angular.dart/issues/625), [#630](https://gi
thub.com/angular/angular.dart/issues/630)) |
| 675 - **blockhole:** Change blockhole to have the insert / remove / move methods. |
| 676 ([c1e70ce8](https://github.com/angular/angular.dart/commit/c1e70ce8e0c8c510f0d
ee4de043e78f61c3e9c3d), |
| 677 [#689](https://github.com/angular/angular.dart/issues/689)) |
| 678 - **change-detection:** Initial implementation of new change-detection algorithm
. |
| 679 ([d0b2dd95](https://github.com/angular/angular.dart/commit/d0b2dd957b02215671f
9b2b8d8f30c05879ad8c5)) |
| 680 - **doc:** Documentation generation for NgAnimateModule. |
| 681 ([a029ac5e](https://github.com/angular/angular.dart/commit/a029ac5edf7e1226dc2
a04fc4d55e41bceb26d36)) |
| 682 - **doc-gen:** Use new docviewer for generating docs |
| 683 ([67fcafff](https://github.com/angular/angular.dart/commit/67fcafff85d3ff1c32b
610e247aa672d6eb91496)) |
| 684 - **forms:** |
| 685 - use the ng-form attribute as the name of the inner form |
| 686 ([8b989b6d](https://github.com/angular/angular.dart/commit/8b989b6d5866eea45a3
e867e3b3a56ac114ff59e), |
| 687 [#681](https://github.com/angular/angular.dart/issues/681)) |
| 688 - introduce the control.hasError helper method |
| 689 ([7b75af44](https://github.com/angular/angular.dart/commit/7b75af44bc4a998c83b
d0a5a0339984e74766f55)) |
| 690 - expose getters for submitted, valid_submit and invalid_submit |
| 691 ([9daaa0fc](https://github.com/angular/angular.dart/commit/9daaa0fcd5898ead0a6
2e577001dd2568eb17dfb), |
| 692 [#601](https://github.com/angular/angular.dart/issues/601)) |
| 693 - provide support for touch and untouched control flags |
| 694 ([634c62b1](https://github.com/angular/angular.dart/commit/634c62b1d9d77e3d341
3934b068c312afa637b43), |
| 695 [#591](https://github.com/angular/angular.dart/issues/591)) |
| 696 - generate ng-submit-valid / ng-submit-invalid CSS classes upon form submissio
n |
| 697 ([4bf9447c](https://github.com/angular/angular.dart/commit/4bf9447cc64650d6c73
b66c844fb5396b4a2ae27)) |
| 698 - provide support for reseting forms, fieldsets and models |
| 699 ([c75202d5](https://github.com/angular/angular.dart/commit/c75202d5d7ecabd0136
6f2198e0c0c3b5c087e59)) |
| 700 - add a test for input type="search" |
| 701 ([87a60d1f](https://github.com/angular/angular.dart/commit/87a60d1f43b8a4f4e7e
31ca179e9de8cd2d94ce9)) |
| 702 - **ngModel:** |
| 703 - Treat the values of number and range inputs as numbers |
| 704 ([e703bd1b](https://github.com/angular/angular.dart/commit/e703bd1bc75f4d6420a
fad0bbb975b3e23672ff8), |
| 705 [#527](https://github.com/angular/angular.dart/issues/527)) |
| 706 - support the input[type="search"] field |
| 707 ([ff736d92](https://github.com/angular/angular.dart/commit/ff736d92a16bc06b848
d0be4282dbf8f80b831c5), |
| 708 [#466](https://github.com/angular/angular.dart/issues/466)) |
| 709 - **ngRepeat:** add track by support |
| 710 ([07566457](https://github.com/angular/angular.dart/commit/07566457720c1fc9631
808432a2cb39c2edeccb8), |
| 711 [#277](https://github.com/angular/angular.dart/issues/277), [#507](https://gi
thub.com/angular/angular.dart/issues/507)) |
| 712 - **routing:** new DSL and deferred module loading |
| 713 ([3db9ddd3](https://github.com/angular/angular.dart/commit/3db9ddd3d2ab9aa97df
e2d0bdd5631190f6c6a56)) |
| 714 - **sanitization:** make NodeValidator injectable |
| 715 ([47ab48ad](https://github.com/angular/angular.dart/commit/47ab48adf5cbcba6e7a
2c8607b1ce1be29014a83), |
| 716 [#490](https://github.com/angular/angular.dart/issues/490), [#498](https://gi
thub.com/angular/angular.dart/issues/498)) |
| 717 - **scope:** |
| 718 - add scope digest stat collection |
| 719 ([c066923d](https://github.com/angular/angular.dart/commit/c066923d8be4198e069
2b22c83b11aee81fed3ee), |
| 720 [#609](https://github.com/angular/angular.dart/issues/609)) |
| 721 - add internal streams consistency checks |
| 722 ([65213c30](https://github.com/angular/angular.dart/commit/65213c30e2e34ed3957
7f0785f3c80a297829c43)) |
| 723 - Experimental: Watch once, watch not null expressions |
| 724 ([84762b10](https://github.com/angular/angular.dart/commit/84762b1028ef7e33451
9a5b322adf768dacd00c9)) |
| 725 - Allow expressions on non-scope context |
| 726 ([e4dfb469](https://github.com/angular/angular.dart/commit/e4dfb469c5e322ad9b9
0bad0ec40ce54626a24c0)) |
| 727 - **scope2:** Basic implementation of Scope v2 |
| 728 ([3bde820e](https://github.com/angular/angular.dart/commit/3bde820e6cf0819d024
34afb41479552487323e7)) |
| 729 - **scripts:** robust authors.sh |
| 730 ([ffe43c6c](https://github.com/angular/angular.dart/commit/ffe43c6cceafcdd8c6c
ed170e99bbd7b50ec40fb), |
| 731 [#586](https://github.com/angular/angular.dart/issues/586)) |
| 732 - **zone:** Allow escaping of auto-digest mechanism. |
| 733 ([2df2660d](https://github.com/angular/angular.dart/commit/2df2660d876ee3cc600
47eb806704edc99c41dbf), |
| 734 [#557](https://github.com/angular/angular.dart/issues/557)) |
| 735 |
| 736 |
| 737 ## Performance Improvements |
| 738 |
| 739 - **change-detection:** optimize DirtyCheckingChangeDetector.collectChanges() |
| 740 ([4453e3e8](https://github.com/angular/angular.dart/commit/4453e3e8a5602e6095c
ecc899d8a32594ea48b4e), |
| 741 [#693](https://github.com/angular/angular.dart/issues/693)) |
| 742 - **scope:** |
| 743 - optim createChild() which always append at the end |
| 744 ([78f0c826](https://github.com/angular/angular.dart/commit/78f0c82680123f146b4
e430db46bb2f59b214be1), |
| 745 [#626](https://github.com/angular/angular.dart/issues/626)) |
| 746 - misc optimizations |
| 747 ([7f36a8e1](https://github.com/angular/angular.dart/commit/7f36a8e1557cd55e737
9b1750fd4029e7eddd91b), |
| 748 [#610](https://github.com/angular/angular.dart/issues/610)) |
| 749 |
| 750 |
| 751 ## BREAKING CHANGES |
| 752 |
| 753 0.9.9 contains a major overhaul to the change-detection algorithm which is used
behind the scenes |
| 754 during scope digests. As a result, much of the scope API has changed to facilita
te this new feature. |
| 755 |
| 756 The biggest change is how scope properties are assigned on the scope. With earli
er versions of |
| 757 AngularDart, the scope object itself was treated like a map and any property acc
essed using square |
| 758 brackets would either set or get the associated value. With 0.9.9 this will not
produce the same |
| 759 effect. Instead all scope property getter and setter operations are to be facili
tated within the |
| 760 scope.context member. So in other words, all the scope property reading and writ
ing that was done |
| 761 in earlier versions is now done the same way, but on the `scope.context` member. |
| 762 |
| 763 ```dart |
| 764 // < 0.9.9 |
| 765 scope['prop'] = 'value'; //set |
| 766 scope['prop']; //get |
| 767 |
| 768 // >= 0.9.9 |
| 769 scope.context['prop'] = 'value'; //set |
| 770 scope.context['prop']; //get |
| 771 ``` |
| 772 |
| 773 ### Breaking Changes to the Scope API |
| 774 |
| 775 #### 1. scope.$watch() is now scope.watch() |
| 776 ```dart |
| 777 //old code |
| 778 scope.$watch('a.b.c', () {}); |
| 779 |
| 780 //new code (no more $ prefixing) |
| 781 scope.watch('a.b.c', (value, previous) {}); |
| 782 ``` |
| 783 |
| 784 #### 2. scope context changes |
| 785 ```dart |
| 786 //old code |
| 787 scope.$watch(() => o.foo; () {}); |
| 788 |
| 789 //new code (notice the context property) |
| 790 scope.watch('foo', (value, _) {}, context: o); |
| 791 ``` |
| 792 |
| 793 #### 3. watch de-registration |
| 794 ```dart |
| 795 //old code |
| 796 var stopWatch = scope.$watch(...); |
| 797 stopWatch(); |
| 798 |
| 799 //new code |
| 800 Watch watch = scope.watch(...); |
| 801 watch.remove(); |
| 802 ``` |
| 803 |
| 804 #### 4. Replace scope-level digests |
| 805 ```dart |
| 806 //old code |
| 807 scope.$digest(); |
| 808 |
| 809 //new code |
| 810 scope.rootScope.apply(); |
| 811 |
| 812 //Digest is now split between digest/flush so we need apply to call them both. |
| 813 ``` |
| 814 |
| 815 #### 5. Changes to scope event listeners |
| 816 ```dart |
| 817 //old code |
| 818 scope.$on('foo', (e, data) {}); |
| 819 |
| 820 //new code |
| 821 scope.on('foo').listen((e) {var data = e.data;}); |
| 822 |
| 823 |
| 824 //old code |
| 825 scope.$on('foo', (e, a, b, c) {}); |
| 826 |
| 827 //new code |
| 828 scope.on('foo').listen((e) {MyEvent data = e.data;}); |
| 829 |
| 830 |
| 831 //old code |
| 832 scope.$emit('foo', [a]); |
| 833 |
| 834 //new code |
| 835 scope.emit('foo', a); |
| 836 |
| 837 |
| 838 //old code |
| 839 scope.$emit('foo', [a, b ,c]); |
| 840 |
| 841 //new code |
| 842 scope.emit('foo', new MyEvent(a, b, c)); |
| 843 ``` |
| 844 |
| 845 #### 6. Creating new scopes |
| 846 ```dart |
| 847 //old code |
| 848 scope.$new(); |
| 849 |
| 850 //new code |
| 851 scope.createChild(new PrototypeMap(scope.context))); |
| 852 |
| 853 //We have plans to allow any object to be the context. |
| 854 //The PrototypeMap is a way to maintain consistent behavior. |
| 855 ``` |
| 856 |
| 857 #### 7. EvalAsync |
| 858 ```dart |
| 859 //old code |
| 860 scope.$evalAsync(() => null); |
| 861 |
| 862 //new code |
| 863 scope.runAsync(() => null); |
| 864 |
| 865 |
| 866 //old code |
| 867 scope.$evalAsync( |
| 868 () => null, |
| 869 outsideDigest: true); |
| 870 |
| 871 //new code |
| 872 scope.domRead(() => null); |
| 873 ``` |
| 874 |
| 875 #### 8. scope.$$verifyDigestWillRun() has been removed |
| 876 There is currently no replacement. We feel that we have the zone under control a
nd there is no need for this method any more. |
| 877 |
| 878 #### 9. scope.$disabled has been removed |
| 879 There is currently no replacement. |
| 880 |
| 881 #### 10. Watching collections |
| 882 ```dart |
| 883 //old code |
| 884 scope.$watchSet(['ctrl.foo', 'ctrl.bar'], (values) {...}); |
| 885 |
| 886 //new code |
| 887 scope.watch('[ctrl.foo, ctrl.bar]', (vars, _) { |
| 888 var ctrlFoo = vars[0]; |
| 889 var ctrlBar = vars[1]; |
| 890 }); |
| 891 ``` |
| 892 |
| 893 |
| 894 |
1 <a name="v0.9.8"></a> | 895 <a name="v0.9.8"></a> |
2 # v0.9.8 cozy-porcupine (2014-02-19) | 896 # v0.9.8 cozy-porcupine (2014-02-19) |
3 | 897 |
4 | 898 |
5 ## Bug Fixes | 899 ## Bug Fixes |
6 | 900 |
7 - **DateFilter:** fix a wrong type | 901 - **DateFilter:** fix a wrong type |
8 ([cec3edad](https://github.com/angular/angular.dart/commit/cec3edad1944a841188
2b0a87ea6193c25513392), | 902 ([cec3edad](https://github.com/angular/angular.dart/commit/cec3edad1944a841188
2b0a87ea6193c25513392), |
9 [#579](https://github.com/angular/angular.dart/issues/579)) | 903 [#579](https://github.com/angular/angular.dart/issues/579)) |
10 - **compiler:** support filters in attribute expressions | 904 - **compiler:** support filters in attribute expressions |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 - **eval access:** Do not crash on null cached value | 1000 - **eval access:** Do not crash on null cached value |
107 ([bbcbd3e7](https://github.com/angular/angular.dart/commit/bbcbd3e70f289c1fcc2
32a38ac89038f83342d3c), | 1001 ([bbcbd3e7](https://github.com/angular/angular.dart/commit/bbcbd3e70f289c1fcc2
32a38ac89038f83342d3c), |
108 [#424](https://github.com/angular/angular.dart/issues/424)) | 1002 [#424](https://github.com/angular/angular.dart/issues/424)) |
109 - **forms:** ensure fields, fieldsets & forms are marked as dirty when modified | 1003 - **forms:** ensure fields, fieldsets & forms are marked as dirty when modified |
110 ([ad60d55a](https://github.com/angular/angular.dart/commit/ad60d55a2f8cdd6c7f0
a246efdc79a5af85a833e)) | 1004 ([ad60d55a](https://github.com/angular/angular.dart/commit/ad60d55a2f8cdd6c7f0
a246efdc79a5af85a833e)) |
111 - **generator:** | 1005 - **generator:** |
112 - write files in sorted order for predictable tests | 1006 - write files in sorted order for predictable tests |
113 ([79b7525a](https://github.com/angular/angular.dart/commit/79b7525a790ce73a50c
2874e2f43110fbce61d16)) | 1007 ([79b7525a](https://github.com/angular/angular.dart/commit/79b7525a790ce73a50c
2874e2f43110fbce61d16)) |
114 - Write URI in sorted order to prevent SHA churn | 1008 - Write URI in sorted order to prevent SHA churn |
115 ([217839ef](https://github.com/angular/angular.dart/commit/217839ef3495506313a
226681a6c10a52e71df0f)) | 1009 ([217839ef](https://github.com/angular/angular.dart/commit/217839ef3495506313a
226681a6c10a52e71df0f)) |
116 - **input:** treat <input> with no type as type="text" | 1010 - **input:** treat `<input>` with no type as type="text" |
117 ([8f0a8a7f](https://github.com/angular/angular.dart/commit/8f0a8a7fe87517a65b2
c5ed2857c90ea87898a0b)) | 1011 ([8f0a8a7f](https://github.com/angular/angular.dart/commit/8f0a8a7fe87517a65b2
c5ed2857c90ea87898a0b)) |
118 - **ng-class:** array syntax should not insert nulls | 1012 - **ng-class:** array syntax should not insert nulls |
119 ([b982e326](https://github.com/angular/angular.dart/commit/b982e326cd7d3fbd4e5
3fbe7b65ba9adc0f5cf64), | 1013 ([b982e326](https://github.com/angular/angular.dart/commit/b982e326cd7d3fbd4e5
3fbe7b65ba9adc0f5cf64), |
120 [#513](https://github.com/angular/angular.dart/issues/513)) | 1014 [#513](https://github.com/angular/angular.dart/issues/513)) |
121 - **ngModel:** evaluate user input using onInput instead of onKeyDown | 1015 - **ngModel:** evaluate user input using onInput instead of onKeyDown |
122 ([64442974](https://github.com/angular/angular.dart/commit/64442974157211b49ba
d6f28182a15aedd652efd)) | 1016 ([64442974](https://github.com/angular/angular.dart/commit/64442974157211b49ba
d6f28182a15aedd652efd)) |
123 - **parser:** | 1017 - **parser:** |
124 - disallow filters in a chain and inside expressions | 1018 - disallow filters in a chain and inside expressions |
125 ([5bcea649](https://github.com/angular/angular.dart/commit/5bcea6492f6d0fd39ba
316fa3b241c50bb94de8d)) | 1019 ([5bcea649](https://github.com/angular/angular.dart/commit/5bcea6492f6d0fd39ba
316fa3b241c50bb94de8d)) |
126 - Correctly distinguish NoSuchMethodError | 1020 - Correctly distinguish NoSuchMethodError |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 | 1395 |
502 # Semantic Version Conventions | 1396 # Semantic Version Conventions |
503 | 1397 |
504 http://semver.org/ | 1398 http://semver.org/ |
505 | 1399 |
506 - *Stable*: All even numbered minor versions are considered API stable: | 1400 - *Stable*: All even numbered minor versions are considered API stable: |
507 i.e.: v1.0.x, v1.2.x, and so on. | 1401 i.e.: v1.0.x, v1.2.x, and so on. |
508 - *Development*: All odd numbered minor versions are considered API unstable: | 1402 - *Development*: All odd numbered minor versions are considered API unstable: |
509 i.e.: v0.9.x, v1.1.x, and so on. | 1403 i.e.: v0.9.x, v1.1.x, and so on. |
510 | 1404 |
OLD | NEW |