80 KiB
2.0.0-alpha.37 (2015-09-09)
Bug Fixes
- build: delete unreferenced typings on npm install (42e1b07), closes #1636 #3940
- bundle: don't include System.config in dev bundle (a94f051), closes #3826 #3862
- ComponentUrlMapper: support relative template URLs in Dartium (7c7888d), closes #2771 #3743
- core: Fix type error (6c3c606)
- http: change type declarations to interfaces and export EventEmitter (10437ab)
- router: re-export of Type (b8be4bf), closes #3632 #3704
- RouteRegistry: initialize RouteParams.params (3791c4a), closes #3755
- test: error in karma when systemjs imports fail (7820086), closes #3846
- typings: emit spread parameters (a34d4c6), closes #3875
- WebWorker: Return boolean from
dispatchRenderEvent
(457eb5d) - WebWorker: WebWorkerRenderer removes views after they're destroyed (9619636), closes #3240 #3894
Features
- compile: add HtmlParser, TemplateParser, ComponentMetadataLoader (9f576b0), closes #3839
- compiler: add full directive metadata and validation logic (f93cd9c), closes #3880
- core: added afterContentInit, afterViewInit, and afterViewChecked hooks (d49bc43), closes #3897
- core: remove the (^ syntax and make all DOM events bubbling (60ce884), closes #3864
- docs: document code size management tools for Dart (6532171)
- docs: document unused reflection info tracking (46f751b)
- exception_handler: changed ExceptionHandler to use console.error instead of console.log (3bb27de), closes #3812
- router: hash-cons ComponentInstructions (e1a7e03)
- router: implement Router.isRouteActive (de37729)
- router: router-link-active CSS class support (36eb9d3), closes #3209
- WebWorker: Expose MessageBroker API (358908e), closes #3942
- WebWorkers: Add WebSocket MessageBuses for debugging apps (4ba4427), closes #3858
BREAKING CHANGES
Events
- Before
<div (^click)="onEventHandler()">
<button></button>
</div>
- After
<div (click)="onEventHandler()">
<button></button>
</div>
Lifecycle
- Before (ES5)
var HelloCmp = ng.
Component({
selector: 'hello-cmp',
lifecycle: [LifecycleEvent.onInit]
})
.View({
template: `<h1>hello, there!</h1>`
})
.Class({
onInit: function() {
console.log('hello-cmp init');
}
});
- Before (ES6)
import {Component, View, LifecycleEvent} from 'angular2/angular2';
@Component({
selector: 'hello-cmp',
lifecycle: [LifecycleEvent.onInit]
})
@View({
template: `<h1>hello, there!</h1>`
})
class HelloCmp {
onInit() {
console.log('hello-cmp init');
}
}
- After (ES5)
var HelloCmp = ng.
Component({
selector: 'hello-cmp'
})
.View({
template: `<h1>hello, there!</h1>`
})
.Class({
onInit: function() {
console.log('hello-cmp init');
}
});
- After (ES6)
import {Component, View, OnInit} from 'angular2/angular2';
@Component({
selector: 'hello-cmp'
})
@View({
template: `<h1>hello, there!</h1>`
})
class HelloCmp implements OnInit {
onInit() {
console.log('hello-cmp init');
}
}
2.0.0-alpha.36 (2015-08-31)
Bug Fixes
- .d.ts: show unknown fields as ‘any’ not ‘void’. (a0b2408), closes #3637
- build: do not run build/pubbuild.dart twice (e72305e), closes #3831
- build: error when running
npm test
locally (bf4b75e), closes #3806 - build: make e2e tests faster (c2279dd), closes #3822
- change_detection: fixed reflect properties as attributes (a9ce454), closes #3761
- change_detection: update the right change detector when using ON_PUSH mode (195c5c2)
- compiler: detect and report error for views with empty templateUrl (215c4aa), closes #3762 #3768
- dart: bad export in core.dart (984e7b8)
- examples: Modifies web worker examples to be compatible with systemjs 0.18.10. (675cb87), closes #3630
- http: allow using JSONP_INJECTABLES and HTTP_INJECTABLES in same injector (5725f71), closes #3365 #3390
- http/http: allow for commonjs as ngHttp (16eb8ce), closes #3633
- injector: support getRootInjectors on dehydrated injectors. (92da543), closes #3760
- injectors: reset the construction counter in dynamic strategy. (272ad61), closes #3635
- tag for browsers that do not suppor them (ddcfd46), closes #3636
- karma: corrected race condition with RX loading (8dc509f)
- parser: detect and report interpolation in expressions (b039ec3), closes #3645 #3750
- router: allow router-link to link to redirects (72e0b8f), closes #3335 #3624
- router: subscribe should return subscription (5c95b37), closes #3491 #3695
- typings: include static members (894af28), closes #3175 #3780
- ViewLoader: provide componentId in missing template / templateUrl errors (3871f89)
- wtf: fix NgZone.run instrumentation (5f0a0fd), closes #3788
- wtf paramater passing on scope (9afcb00), closes #3726
- track unused reflection data (8336881)
- browser: support Edge (3b49652), closes #3667
- build: added a temporary fix to make test.unit.dart work (85ec34d)
- change_detection: added support for observable components and directives (e8e430e)
- change_detection: do not reparse AST when using generated detectors (d2d0715)
- docs: export type info for var and const exports (9262727), closes #3700
- facade: add maximum method for ListWrapper (b5c4d8b)
- http: xhr error listener invokes throw on EventEmitter (f2d3bdb), closes #2667
- router: add angular 1.x router (fde026a)
- router: add reuse support for angular 1.x router (ddb62fe), closes #3698
- url_resolver: Allow a developer to customize their package prefix (9cc1cd2), closes #3794
- benchmarks: remove reference to String.prototype.contains() (b6ee208), closes #3570
- browser_adapter.ts: baseElement.getAttribute (235dec2), closes #3214
- compiler: strip script tag from templates (748c2d6), closes #2766 #3486
- CSSClass: change selector to ng-class (ff1b110), closes #3498
- dart: @proxy is a value, not a factory (b4a0629), closes #3494
- docs: export bootstrap in core.ts but not in core.dart (5f7d4fa)
- docs: ng-non-bindable (f2f4b90), closes #3607
- exception_handler: log errors that are thrown by the compiler (07b9be7)
- NgClass: take initial classes into account during cleanup (ed25a29), closes #3557
- presubmit: uses proper branch instead of hard coded (96e34c1), closes #3552
- query: do not visit dehydrated injectors. (6c9e712)
- router: fix regression with generating links to async routes (26d2ea8), closes #3650
- router: throw when component in route config is not defined (903a0f0), closes #3265 #3569
- test_lib: run unit tests in default Documnent (a37de36), closes #3501 #3475
- testability: properly throw when no testability available (841206c)
- testability: throw if no testability available (08dbe87)
- Testability: fix type error in getAllAngularTestability (dart) (574bbea)
- transformers: be more specific in the imports to rewrite (86eb46a), closes #3473 #3523
- improper use package name in facade (64ebf27), closes #3613
- typescript: update to typescript with fixed system emit (ac31191), closes #3594
- UrlResolver: encode URLs before resolving (4f5e405), closes #3543 #3545
- WebWorkers: Run XHR requests on the UI (2968517), closes #3652
- change_detection: added an example demonstrating how to use observable models (52da220), closes #3684
- change_detection: added an experimental support for observables (cbfc9cb)
- change_detection: request a change detection check when an event happens (5e6317f), closes #3679
- compiler: allow binding to className using class alias (a7a1851), closes #2364
- coreDirectives: add NgClass to coreDirectives (6bd95c1), closes #3534
- dart/transform: Support
part
directives (aa480fe), closes #1817 - di: added resolveAndInstantiate and instantiateResolved to Injector (06da60f)
- http: serialize search parameters from request options (77d3668), closes #2417 #3020
- npm: add typescript block to package.json (b5fb05b), closes #3590 #3609
- npm: publish bundles and their typings in npm distribution (7b3cca2), closes #3555
- pipe: added the Pipe decorator and the pipe property to View (5b5d31f), closes #3572
- pipes: changed PipeTransform to make onDestroy optional (839edaa)
- PropertyBindingParser: support onbubble-event as an alternate syntax for (^event) (1f54e64), closes #3448 #3616
- query: allow to query for
TemplateRef
(585ea5d), closes #3202 - query: view query is properly updated when dom changes. (2150a8f), closes #3033 #3439
- query_list: delegate
toString
to_results
array (35a83b4), closes #3004 - refactor: replaced ObservablePipe and PromisePipe with AsyncPipe (106a28b)
- router: auxiliary routes (ac6227e), closes #2775
- router: user metadata in route configs (ed81cb9), closes #2777 #3541
- test: find testabilities across dart js applications (1d65b38), closes #3611
- testability: option to disable tree walking (8f5360c)
- typings: allow declaration of reference paths (1f692ae), closes #3540
- typings: allow defining custom namespace for bundle (dfa5103), closes #2948 #3544
-
rename all constants to UPPER_CASE names
appComponentTypeToken
=>APP_COMPONENT
coreDirectives
=>CORE_DIRECTIVES
formDirectives
=>FORM_DIRECTIVES
formInjectables
=>FORM_BINDINGS
httpInjectables
=>HTTP_BINDINGS
jsonpInjectables
=>JSONP_BINDINGS
PROTO_CHANGE_DETECTOR_KEY
=>PROTO_CHANGE_DETECTOR
appComponentRefPromiseToken
=>APP_COMPONENT_REF_PROMISE
appComponentTypeToken
=>APP_COMPONENT
undefinedValue
=>UNDEFINED
formDirectives
=>FORM_DIRECTIVES
DOCUMENT_TOKEN
=>DOCUMENT
APP_ID_TOKEN
=>APP_ID
MAX_IN_MEMORY_ELEMENTS_PER_TEMPLATE_TOKEN
=>MAX_IN_MEMORY_ELEMENTS_PER_TEMPLATE
appBaseHrefToken
=>APP_BASE_HREF
-
renamed DI visibility flags
PRIVATE
=>Visibility.Private
PUBLIC
=>Visibility.Public
PUBLIC_AND_PRIVATE
=>Visibility.PublicAndPrivate
-
renamed all "annotation" references to "metadata"
- *Annotations => *Metadata
- renderer.DirectiveMetadata => renderer.RendererDirectiveMetadata
- renderer.ElementBinder => renderer.RendererElementBinder
- impl.Directive => impl.DirectiveMetadata
- impl.Component => impl.ComponentMetadata
- impl.View => impl.ViewMetadata
-
IS_DARTIUM
constant is no longer exported/supported -
The HTTP package is no longer supported in Dart (use standard library apis instead)
-
Remove IRequestOptions / IResponseOptions / IQueryList interfaces
-
Pipe factories have been removed and Pipe names to pipe implementations are 1-to-1 instead of 1-to-*
Before:
class DateFormatter { transform(date, args){} }
class DateFormatterFactory { supporst(obj) { return true; } create(cdRef) { return new DateFormatter(); } } new Pipes({date: [new DateFormatterFactory()]})
After:
class DateFormatter { transform(date, args){} } new Pipes({date: DateFormatter})
-
Previously Angular called onDestroy on all pipes. Now Angular calls onDestroy only on pipes that have the onDestroy method.
-
Instead of configuring pipes via a Pipes object, now you can configure them by providing the pipes property to the View decorator.
@Pipe({ name: 'double' }) class DoublePipe { transform(value, args) { return value * 2; } } @View({ template: '{{ 10 | double}}' pipes: [DoublePipe] }) class CustomComponent {}
-
The router was previously exported as ng.router in the angular.sfx.dev.js bundle, but now it is exported as ngRouter.
-
The selector for the CSSClass directive was changed from [class] to [ng-class]. The directive itself was renamed from CSSClass to NgClass
- XHRConnection: use xhr status code (96eefdf), closes #2841
- bootstrap: fix expressions containing bootstrap (fixes #3309) (2909576), closes #3309
- browser_adapter: fix clearNodes() in IE (70bc485), closes #3295 #3355
- collection: MapIterator.next() is not supported (Safari) (12e4c73), closes #3015 #3389
- compiler: Allow components to use any style of selector. Fixes #1602 (c20a5d6), closes #1602
- core: export LifeCycle at top-level modules (4e76cac), closes #3395
- dart/transform: Remove malfunctioning zone error handler (68a581a), closes #3368
- decorators: stop directives inheriting parent class decorators. (f7d7789), closes #2291
- docs: add ViewDefinition, DirectiveMetadata to public API (d4ded1a), closes #3346
- remove unused imports (39b0286)
- parser: detect empty expression in strings to interpolate (4422819), closes #3412 #3451
- query: view query should not be updated when subviews are attached. (34acef5)
- render: allow to configure when templates are serialized to strings (dd06a87), closes #3418 #3433
- router: ensure navigation via back button works (7bf7ec6), closes #2201
- style_url_resolver: fix data: url resolution (73b7d99)
- testing: Fixed race condition in WebWorker and Routing tests (eee2146)
- WebWorkers: Add WebWorker Todo Example. Add support for more DOM events. (d44827a)
- WebWorkers: Add WebWorker Todo Example. Add support for more DOM events. (c5cb700)
- implement web-tracing-framework support (77875a2), closes #2610
- compiler: introduce schema for elements (d894aa9), closes #3353
- core: made directives shadow native element properties (3437d56)
- md-button: enhance button focus appearance. (6d280ea)
- pipes: replaces iterable and key value diffing pipes with services (392de4a)
- enable the decorators compiler option. (0bb78b7)
- export a proper promise type. (861be30)
- upgrade ts2dart to 0.7.1. (a62a6ba)
- router: add
back()
support toMockLocationStrategy
(60f38ea) - testability: Expose function getAllAngularTestabilities (7b94bbf)
- transformers: add more information to factory debug reflection (be79942)
- change_detection: do not check intermediate results (c1ee943)
- change_detection: do not generate onAllChangesDone when not needed (adc2739)
- change_detection: removed the currentProto property (71ea199)
-
Directives that previously injected Pipes to get iterableDiff or keyvalueDiff, now should inject IterableDiffers and KeyValueDiffers.
-
Previously, if an element had a property, Angular would update that property even if there was a directive placed on the same element with the same property. Now, the directive would have to explicitly update the native elmement by either using hostProperties or the renderer.
- addresses a couple ddc type errors (f1e42920)
- .d.ts: Correct new Type interface return type (78fdf9a1, closes #2399, #3316)
- build: don't trigger travis on g3sync branch (61b77034)
- change_detection: convert interpolated null values to empty strings (345fa521, closes #3007, #3271)
- class:
- compiler: prevent race conditions (5ec67ee2, closes #3206, #3211)
- core: fix type error in setElementProperty (448264be, closes #3279)
- element_injector: do not throw when cannot find element when trying to report an error (03c8e742)
- presubmit: corrected user/email for git push (e40ff368)
- projection:
- query: the view should not be visible to @Query. (1d450294)
- transformer:
- typings: test our .d.ts with --noImplicitAny (19d8b221)
- url_resolver: in Dart make package urls relative to AppRootUrl (469afda5)
- benchmark: add static_tree benchmark (854b5b7d, closes #3196)
- bootstrap: remove the need for explicit reflection setup in bootstrap code (3531bb71)
- build: initial SauceLabs setup (eebd736c, closes #2347)
- change_detection:
- core: provide an error context when an exception happens in an error handler (8543c347)
- di: added context to runtime DI errors (5a86f859)
- exception_handler:
- http: call complete on request complete (6fac9011, closes #2635)
- http.ts: export BrowserXHR (8a91d716, closes #2641)
- lang: added "context" to BaseException (8ecb632d)
- router: use querystring params for top-level routes (fdffcaba, closes #3017)
- testability: hook zone into whenstable api with async support (a8b75c3d)
- transformers: directive aliases in Dart transformers (fix #1747) (fd46b49e)
- url_resolver: support package: urls () (408618b8, closes #2991)
- View renderer used to take normalized CSS class names (ex. fooBar for foo-bar). With this change a rendered implementation gets a calss name as specified in a template, without any transformations / normalization. This change only affects custom view renderers that should be updated accordingly.
- .d.ts: Correct new Type interface return type (78fdf9a), closes #2399 #3316
- build: don't trigger travis on g3sync branch (61b7703)
- change_detection: convert interpolated null values to empty strings (345fa52), closes #3007 #3271
- class: allow class names with mixed case (a8b5725), closes #3001 #3264
- class: correctly clean up on destroy (1438922), closes #3249 #3256
- compiler: prevent race conditions (5ec67ee), closes #3206 #3211
- core: fix type error in setElementProperty (448264b), closes #3279
- dart/transform: Handle mixed lifecycle specs (23cd385), closes #3276
- element_injector: do not throw when cannot find element when trying to report an error (03c8e74)
- lowercase,uppercase: make stateless pipes (4dc6d74), closes #3173 #3189
- presubmit: corrected user/email for git push (e40ff36)
- projection: allow more bound render elements than app elements. (46502e4), closes #3236 #3247
- projection: allow to project to a non text node (b44b06c), closes #3230 #3241
- query: the view should not be visible to @Query. (1d45029)
- style_url_resolver: fix data: url resolution (73b7d99)
- transformer: Don't throw on annotations that don't match a descriptor. (f575ba6), closes #3280
- transformer: Fix generation of
annotations
argument when registering functions. (2faa898) - transformer: Loggers now are per zone and each transform runs in its own zone (bd65b63)
- typings: test our .d.ts with --noImplicitAny (19d8b22)
- url_resolver: in Dart make package urls relative to AppRootUrl (469afda)
- addresses a couple ddc type errors (f1e4292)
- benchmark: add static_tree benchmark (854b5b7), closes #3196
- bootstrap: remove the need for explicit reflection setup in bootstrap code (3531bb7)
- build: initial SauceLabs setup (eebd736), closes #2347
- change_detection: generate checkNoChanges only in dev mode (71bb4b3)
- change_detection: provide error context for change detection errors (c2bbda0)
- compiler: introduce schema for elements (d894aa9), closes #3353
- core: provide an error context when an exception happens in an error handler (8543c34)
- dart/transform: Populate
lifecycle
from lifecycle interfaces (8ad4ad5), closes #3181 - di: added context to runtime DI errors (5a86f85)
- exception_handler: change ExceptionHandler to output context (fdf226a)
- exception_handler: print originalException and originalStack for all exceptions (e744409)
- http: call complete on request complete (6fac901), closes #2635
- http.ts: export BrowserXHR (8a91d71), closes #2641
- lang: added "context" to BaseException (8ecb632)
- router: use querystring params for top-level routes (fdffcab), closes #3017
- testability: hook zone into whenstable api with async support (a8b75c3)
- transformers: directive aliases in Dart transformers (fix #1747) (fd46b49), closes #1747
- url_resolver: support package: urls (fixes #2991) (408618b), closes #2991
- style(ngFor): add whitespace to
Directive
annotation (74b311a) -
View renderer used to take normalized CSS class names (ex. fooBar for foo-bar). With this change a rendered implementation gets a calss name as specified in a template, without any transformations / normalization. This change only affects custom view renderers that should be updated accordingly.
-
S: Dart applications and TypeScript applications meant to transpile to Dart must now import
package:angular2/bootstrap.dart
instead ofpackage:angular2/angular2.dart
in their bootstrap code.package:angular2/angular2.dart
no longer export the bootstrap function. The transformer rewrites imports ofbootstrap.dart
and calls tobootstrap
tobootstrap_static.dart
andbootstrapStatic
respectively. - api_docs: slightly more accurate description of Dart overrideOnEventDone (a4915ad)
- api_docs: slightly more accurate description of TS overrideOnEventDone (fe3a559)
- build: clang-format (66ec4d1)
- change_detect: Handle '$' in change detector strings (f1e8176)
- change_detect: Sort
DirectiveMetadata
properties during processing (b2a0be8) - content_projection: allow to project text nodes to a place without bindings (a472eac), closes #3163 #3179
- di: do not rely on the fact that types are canonicalized (2147ce4)
- di: fixed dynamic component loading of components created in child injector (5749692)
- di: fixed types (2f08ed8)
- di: instatiate services lazily (7531b48)
- element_injector: inject the containing change detector ref to directives (7879761)
- examples: add a couple entrypoints, adjust pubspec, fix change detector bug in Dart (b03560b)
- facade: use base element to get base href (8296dce)
- forms: default the initial value of Control to null (5b597de)
- forms: do not reset the value of the input when it came from the view (b123159)
- html_adapter: Implement hasAttribute and getAttribute. (e988f59)
- ng_for: fixed ng_for to pass a change detector ref to the pipe registry (583c5ff)
- publish: add force flag for pub publish script (621604d), closes #3077
- renderer: handle empty fragments correctly (61c7357), closes #3100
- router: improve error for missing base href (011fab3), closes #3096
- router: improve error messages for routes with no config (8bdca5c), closes #2323
- router: throw when reserved characters used in route definition (c6409cb), closes #3021
- transformers: fix sort order for reflective imports (762a94f)
- view_manager: allow to create host views even if there is an embedded view at the same place. (116b64d)
- FunctionWithParamTokens.execute now returns the value of the function (3dd05ef)
- compiler: attach components and project light dom during compilation. (b1df545), closes #2529
- upgrade ts2dart to 0.6.9. (3810e4b)
- build: require parameter types (de18da2), closes #2833
- change_detection: added support for ObservableList from package:observe (d449ea5)
- compiler: Support $baseUrl in HTML attributes when loading a template. (e942709)
- core: add ability to reflect DOM properties as attributes (903ff90), closes #2910
- facade: add getTypeNameForDebugging function (ccb4163)
- forms: Export NgSelectOption directive (f74d97e)
- http: add support for JSONP requests (81abc39), closes #2905 #2818
- pipes: changed .append to .extend (4c8ea12)
- router: add interfaces for route definitions in RouteConfig (4d28167), closes #2261
- transformers: expose DI transformer for use by packages (2bc1217), closes #2814
- transformers: implement initializing deferred libraries (5cc84ed)
-
Pipes.append has been renamed into Pipes.extend.
Pipes.extend prepends pipe factories instead of appending them.
-
S:
- shadow dom emulation no longer
supports the
<content>
tag. Use the new<ng-content>
instead (works with all shadow dom strategies). - removed
DomRenderer.setViewRootNodes
andAppViewManager.getComponentView
-> useDomRenderer.getNativeElementSync(elementRef)
and change shadow dom directly - the
Renderer
interface has changed:createView
now also has to support sub views- the notion of a container has been removed. Instead, the renderer has to implement methods to attach views next to elements or other views.
- a RenderView now contains multiple RenderFragments. Fragments are used to move DOM nodes around. Internal changes / design changes:
- Introduce notion of view fragments on render side
- DomProtoViews and DomViews on render side are merged, AppProtoViews are not merged, AppViews are partially merged (they share arrays with the other merged AppViews but we keep individual AppView instances for now).
- DomProtoViews always have a
<template>
element as root- needed for storing subviews
- we have less chunks of DOM to clone now
- remove fake ElementBinder / Bound element for root text bindings and model them explicitly. This removes a lot of special cases we had!
- AppView shares data with nested component views
- some methods in AppViewManager (create, hydrate, dehydrate) are iterative now
- now possible as we have all child AppViews / ElementRefs already in an array!
- build: clang-format (df877a7)
- build: reduce the deploy upload. (4264bd3)
- build: remove the travis deploy step, which is broken. (206c9bd)
- compiler: keep
DOM.hasProperty
in sync between browser and transformer. (b3a763a), closes #2984 #2981 - css_shim: fixes multiple uses of polyfill-unscoped-rule. (749d043)
- di: do not use exceptions to detect if reflection is enabled (a621046)
- di: hostInjector and viewInjector support nested arrays (0ed5dd0)
- di: removed default visibility (04baa46)
- example: add missing todo (1427d73)
- package.json: move some deps into dev deps. (546a8f9), closes #2448
- router: ensure that page refresh with hash URLs works (c177d88), closes #2920
- router: export lifecycle hooks in bundle (97ef1c2)
- router: fix broken
HashLocationStrategy
string issue for dart (d6dadc6) - transform: handle multiple interfaces in directive processor (ac50ffc), closes #2941
- transformer: Event getters now use property name not event name (cf103de)
- transformer: fix 'pub build' in examples (6258929)
- tsconfig: target should be lower case (0792f1a), closes #2938
- build: Allow building in windows without admin priviledges (f1f5784), closes #2873
- forms: changed all form directives to have basic control attributes (3f7ebde)
- license: include license files in dev and dev.sfx bundles (1eab4f5)
- pipes: add date pipe (b716046), closes #2877
- pipes: add number (decimal, percent, currency) pipes (3143d18)
- pipes: add static append method to Pipes (1eebcea), closes #2901
- upgrade clang-format to v1.0.28. (45994a5)
- query: initial implementation of view query. (7ee6963), closes #1935
- router: introduce matrix params (5677bf7), closes #2774 #2989
- router: lifecycle hooks (a9a552c), closes #2640
- test: add test bundle (71c65b4)
- zone: add "on event done" zone hook (0e28297)
-
Directives will use the Unbounded visibility by default, whereas before the change they used Self
- .d.ts: correct ComponentAnnotation inheritance (12a427e), closes #2356
- Http: add support for headers (883b506)
- angular2.d.ts: show typing for Component, etc (b10d7a2)
- change_detection: do not coalesce records with different directive indices (d277442)
- change_detection: throw ChangeDetectionError in JIT mode (c2efa23)
- compiler: detect and strip data- prefix from bindings (cd65fc2), closes #2687 #2719
- di: injecting null causes a cyclic dependency (d1393b0)
- handle errors w/o file information. (e69af1a)
- forms: Remove cyclic dependency (e5405e4), closes #2856
- router: allow generating links with numeric params (d828664)
- router: child routers should delegate navigation to the root router (1c94c32)
- transformer: Fix string interpolation for bindings. (311b477)
- transformer: Put paramater data in the same order as the reflected version. (2b45bd2)
- transformer: Support prefixed annotations in the transformer. (9e1158d)
- upgrade t2dart to 0.6.8. (d381c5f)
- NgStyle: Export NgStyle in angular2/directives (edf5053), closes #2878
- router: support deep-linking to siblings (286a249), closes #2807
- transformer: Support @Injectable() on static functions (7986e7c)
- typings: mark void methods in angular2.d.ts (a56d33d)
- Router: mark Pipeline and RouteRegistry as Injectable (eea989b), closes #2755
- build: Reduce rx typings to what we actually require. (8bab6dd)
- build: add missing return types now enforced by linter (4489199)
- build: fix paths in
test.typings
task (1c8a589) - bundle: don’t bundle traceur/reflect into benchpress (da4de21)
- bundle: don’t bundle traceur/reflect into benchpress - amended change (d629ed7)
- change detectors: Fix deduping of protos in transformed dart mode. (73a939e)
- compiler: don't trigger duplicated directives (0598226), closes #2756 #2568
- export top-level pipe factories as const (393f703)
- docs: link to clang-format (f1cf529)
- docs: to run js test 'gulp docs' is needed (3e65037), closes #2762
- dynamic_component_loader: check whether the dynamically loaded component has already been destroyed (d6cef88), closes #2748 #2767
- transformer: Add getters for
events
. (5a21dc5) - transformer: Don't hang on bad urls and log better errors (d037c08)
- transformer: Fix annotation_matcher for NgForm directive. (9c76850)
- typings: Minor issues preventing angular2.d.ts from working in TS 1.4. (7a4a3c8)
- NgStyle: add new NgStyle directive (b50edfd), closes #2665
- async: added PromiseWrapper.wrap (b688dee)
- benchpress: initial support for firefox (0949a4b), closes #2419
- build: add tslint to the build. (bc585f2)
- upgrade clang-format and gulp-clang-format. (1f7296c)
- di: changed InstantiationError to print the original stack (eb0fd79)
- di: removed app injector (f0e962c)
- facade: add ListWrapper.toJSON method (2335075)
- http: refactor library to work in dart (55bf0e5), closes #2415
- lang: added originalException and originalStack to BaseException (56245c6)
- pipes: add limitTo pipe (0b50258)
- pipes: support arguments in transform function (600d53c)
- router: support deep-linking to anywhere in the app (f66ce09), closes #2642
- transformers: provide a flag to disable inlining views (dcdd730), closes #2658
- Compiler: do not resolve bindings for cached ProtoViews (7a7b3a6)
- THe appInjector property has been removed. Instead use viewInjector or hostInjector.
- ShadowDomStrategy: always inline import rules (1c4d233), closes #1694
- XHRImpl: file:/// and IE9 bugs (cd735c4)
- annotations: swap DirectiveArgs & ComponentArgs (dcc4bc2)
- benchmarks: add waits for naive scrolling benchmark to ensure loading (d8929c1), closes #1706
- benchpress: do not throw on unkown frame timestamp event (ed3af5f), closes #2622
- change detection: preserve memoized results from pure functions (5beaf6d)
- compiler: make text interpolation more robust (9d4111d), closes #2591
- docs: Fix docs for Directive.compileChildren (9700e80)
- injectors: sync injector tree with dom element tree. (d800d2f)
- parse5: do not try to insert empty text node (0a2f6dd)
- render: fix failing tests in dynamic_component_loader.ts (6149ce2)
- router: return promise with error handler (bc798b1)
- transformer: Throw unimplemented errors in HtmlAdapter. (f9d72bd), closes #2624 #2627
- views: remove dynamic component views, free host views, free embedded views (5dee8e2), closes #2472 #2339
- CSSClass: add support for string and array expresions (8c993dc), closes #2025
- compiler: detect dangling property bindings (d7b9345), closes #2598
- element_injector: support multiple injectables with the same token (c899b0a)
- host: limits host properties to renames (92ffc46)
- mock: add mock module and bundle (2932377), closes #2325
- query: added support for querying by var bindings (b0e2ebd)
- render: don’t use the reflector for setting properties (0a51ccb), closes #2637
- add constructors without type arguments. (35e882e)
- remove MapWrapper.clear(). (9413620)
- remove MapWrapper.contains(). (dfd3091)
- remove MapWrapper.create()/get()/set(). (be7ac9f)
- router: add support for hash-based location (a67f231), closes #2555
- update clang-format to 1.0.21. (254e58c)
- upgrade ts2dart to 0.6.4. (58b38c9)
- router: enforce usage of ... syntax for parent to child component routes (2d2ae9b)
- transformers: inline styleUrls to view directive (f2ef90b), closes #2566
- typings: add typing specs (24646e7)
- S:
- host actions don't take an expression as value any more but only a method name, and assumes to get an array via the EventEmitter with the method arguments.
- Renderer.setElementProperty does not take
style.
/... prefixes any more. Use the new methodsRenderer.setElementAttribute
, ... instead Part of #2476 -
compiler will throw on binding to non-existing properties. Till now it was possible to have a binding to a non-existing property, ex.:
<div [foo]="exp">
. From now on this is compilation error - any property binding needs to have at least one associated property: eaither on an HTML element or on any directive associated with a given element (directives' properites need to be declared using theproperties
field in the@Directive
/@Component
annotation). -
Compiler.compile
has been removed, the only way to compile components dynamically is viaCompiler.compileInHost
DynamicComponentLoader.loadIntoExistingLocation
has changed:- renamed into
loadIntoLocation
- will always create the host element as well
- requires an element with a variable inside of the host component view next to which it will load new component.
- renamed into
DynamicComponentLoader.loadNextToExistingLocation
was renamed intoDynamicComponentLoader.loadNextToLocation
DynamicComponentLoader.loadIntoNewLocation
is removed- use
DynamicComponentLoader.loadNextToLocation
instead and then move the view nodes manually around viaDomRenderer.getRootNodes()
- use
AppViewManager.{create,destroy}Free{Host,Embedded}View
was removed- use
AppViewManager.createViewInContainer
and then move the view nodes manually around viaDomRenderer.getRootNodes()
- use
Renderer.detachFreeView
was removed. UseDomRenderer.getRootNodes()
to get the root nodes of a view and detach them manually.- Compiler: fix text nodes after content tags (d599fd3), closes #2095
- DirectiveMetadata: add support for events, changeDetection (b4e82b8)
- JsonPipe: always transform to json (e77710a)
- Parser: Parse pipes in arguments (f974532), closes #1680
- ShadowDom: fix emulation integration spec to test all 3 strategies (6e38515), closes #2546
- analzyer: removed unused imports (902759e)
- benchmarks: Do not apply the angular transformer to e2e tests (cee2682), closes #2454
- bootstrap: temporary disable jit change detection because of a bug in handling pure functio (9908def)
- broccoli: ensure that inputTrees are stable (928ec1c)
- build: Minify files for angular2.min.js bundle (76797df)
- build: ensure that asset files are copied over to example directories (60b97b2)
- build: only pass ts files to ts2dart transpilation. (b5431e4)
- bundle: makes interfaces.ts non-empty when transpiled. (83e99fc)
- change detect: Fix bug in JIT change detectors (e0fbd4b)
- ci: remove non-existent gulp task from test_e2e_dart (1cf807c), closes #2509
- dart/transform: Don't set ReflectionCapabilities over an async gap (d1b35f9)
- dartfmt: don't break win32 command line limit (617d693), closes #2420 #1875
- diffing-broccoli-plugin: wrapped trees are always stable (7611f92)
- docs: Working generated angular2.d.ts (7141c15)
- docs: ensure no duplicates in alias names of docs (05d02fa)
- docs: order class members in order of declaration (ea27704), closes #2569
- docs: update link paths in annotations (dd23bab), closes #2452 #2475
- dynamic_component_loader: Fix for ts2dart issue (bbfb4e1)
- dynamic_component_loader: implemented dispose for dynamically-loaded components (21dcfc8)
- element_injector: changed visibility rules to expose hostInjector of the component to its shadow d (c51aef9)
- forms: fixed the handling of the select element (f1541e6)
- forms: fixed the selector of NgRequiredValidator (35197ac)
- forms: getError does not work without path (a858f6a)
- forms: updated form examples to contain select elements (c34cb01)
- life_cycle: throw when recursively reentering LifeCycle.tick (af35ab5)
- locals: improved an error message (4eb8c9b)
- Class factory now adds annotations (bc9e482)
- Improve error message on missing dependency (2ccc65d)
- add types for ts2dart's façade handling. (f3d7418)
- compare strings with StringWrapper.equals (633cf63)
- corrected var/# parsing in template (a418397), closes #2084
- declare var global. (1346660)
- improve type of TreeNode.children. (c3c2ad1)
- improve type safety by typing
refs
. (4ae7df2) - include error message in the stack trace (8d081ea)
- increase the stack frame size for tests (ab8eb4f)
- makes NgModel work in strict mode (eb3586d)
- ng_zone: updated zone not to run onTurnDown when invoking run synchronously from onTurnDo (15dab7c)
- npm: update scripts and readme for npm packages. (8923103), closes #2377
- router: avoid two slash values between the baseHref and the path (cdc7b03)
- rename FORWARD_REF to forwardRef in the Angular code base. (c4ecbf0)
- router: do not prepend the root URL with a starting slash (e372cc7)
- router: ensure that root URL redirect doesn't redirect non-root URLs (73d1525), closes #2221
- router: rethrow exceptions (5782f06), closes #2391
- selector: select by attribute independent of value and order (9bad70b), closes #2513
- shadow_dom: moves the imported nodes into the correct location. (92d5658)
- shrinkwrap: restore fsevents dependency (833048f), closes #2511
- view: local variables override local variables set by ng-for (d8e2795)
- AstTranformer: add support for missing nodes (da60381)
- BaseRequestOptions: add merge method to make copies of options (93596df)
- Directive: Have a single Directive.host which mimics HTML (f3b4937), closes #2268
- ElementInjector: throw if multiple directives define the same host injectable (6a6b43d)
- Events: allow a different event vs field name (29c72ab), closes #2272 #2344
- FakeAsync: check pending timers at the end of fakeAsync in Dart (53694eb)
- Http: add Http class (b68e561), closes #2530
- Parser: implement Unparser (331a051), closes #1949 #2395
- Parser: support if statements in actions (7d32879), closes #2022
- View: add support for styleUrls and styles (ac3e624), closes #2382
- benchpress: add mean frame time metric (6834c49), closes #2474
- benchpress: more smoothness metrics (35589a6)
- broccoli: add diffing MergeTrees plugin (4ee3fda), closes #1815 #2064
- broccoli: improve merge-trees plugin and add "overwrite" option (dc8dac7)
- build: add
test.unit.dartvm
for a faster roundtrip of dartvm tests (46eeee6) - change detect: Throw on attempts to use dehydrated detector (b6e95bb)
- dart/change_detect: Add type to ChangeDetector context (5298055), closes #2070
- dart/transform: Add onInit and onCheck hooks in Dart (17c6d6a)
- dart/transform: Allow absolute urls in templates (a187c78)
- dart/transform: Record Type interfaces (dc6e7eb), closes #2204
- dart/transform: Use the best available Change Detectors (8e3bf39), closes #502
- diffing-broccoli-plugin: support multiple inputTrees (41ae8e7), closes #1815 #2064
- e2e: added e2e tests for forms (552d1ed)
- facade: add isMap method (548f3dd)
- forms: added hasError and getError methods to all controls (1a4d237)
- forms: changed forms to capture submit events and fires synthetic ng-submit events (5fc23ca)
- forms: export validator directives as part of formDirectives (73bce40)
- forms: set exportAs to form for all form related directives (e7e82cb)
- forms.ts: formInjectables with FormBuilder (a6cb86b), closes #2367
- adjust formatting for clang-format v1.0.19. (a6e7123)
- allow Type.annotations = Component(...).View(...) (b2c6694), closes #2577
- support decorator chaining and class creation in ES5 (c3ae34f), closes #2534
- update ts2dart to 0.6.1. (9613772)
- http: add basic http service (2156810), closes #2028
- query: adds support for descendants and more list apis. (355ab5b)
- query: notify on changes (5bfcca2)
- router: add routing to async components (cd95e07)
- router: allow configuring app base href via token (cab1d0e)
- transform: update for Directive.host (591f742)
- transformers: updated transformers (e5419fe)
- view: added support for exportAs, so any directive can be assigned to a variable (69b75b7)
- upgrade to clang-format v1.0.19. (1c2abbc)
- RouterLink: use hostListeners for click (92f1af8), closes #2401
- render: don't create property setters if not needed (4f27611)
- render: don’t create an intermediate element array in renderer (9cd510a)
- render: only create
LightDom
instances if the element has children (ca09701) - render: precompute # bound text nodes and root nodes in
DomProtoView
(24e647e) -
By default Query only queries direct children.
-
Before @Directive({ hostListeners: {'event': 'statement'}, hostProperties: {'expression': 'hostProp'}, hostAttributes: {'attr': 'value'}, hostActions: {'action': 'statement'} }) After @Directive({ host: { '(event)': 'statement', '[hostProp]': 'expression' // k & v swapped 'attr': 'value', '@action': 'statement' } })
-
no longer cache ref
Features
2.0.0-alpha.35 (2015-08-19)
Bug Fixes
Features
BREAKING CHANGES
2.0.0-alpha.34 (2015-08-07)
Bug Fixes
Features
Performance Improvements
BREAKING CHANGES
<a name"2.0.0-alpha.33">
2.0.0-alpha.33 (2015-07-30)
Bug Fixes
Features
Breaking Changes
Closes #3264
(a8b57256)