<a name"2.0.0-alpha.32">
- api_docs:
- build: clang-format (66ec4d1f)
- change_detect:
- content_projection: allow to project text nodes to a place without bindings (a472eacc, closes #3163, #3179)
- di:
- element_injector: inject the containing change detector ref to directives (7879761a)
- examples: add a couple entrypoints, adjust pubspec, fix change detector bug in Dart (b03560b6)
- facade: use base element to get base href (8296dcec)
- forms:
- html_adapter: Implement hasAttribute and getAttribute. (e988f59c)
- ng_for: fixed ng_for to pass a change detector ref to the pipe registry (583c5ffc)
- publish: add force flag for pub publish script (621604dc, closes #3077)
- renderer: handle empty fragments correctly (61c73576, closes #3100)
- router:
- transformers: fix sort order for reflective imports (762a94f2)
- view_manager: allow to create host views even if there is an embedded view at the same place. (116b64de)
- FunctionWithParamTokens.execute now returns the value of the function (3dd05ef7)
- upgrade ts2dart to 0.6.9. (3810e4be)
- build: require parameter types (de18da2a, closes #2833)
- change_detection: added support for ObservableList from package:observe (d449ea5c)
- compiler:
- core: add ability to reflect DOM properties as attributes (903ff904, closes #2910)
- facade: add getTypeNameForDebugging function (ccb41632)
- forms: Export NgSelectOption directive (f74d97e1)
- http: add support for JSONP requests (81abc399, closes #2905, #2818)
- pipes: changed .append to .extend (4c8ea129)
- router: add interfaces for route definitions in RouteConfig (4d28167b, closes #2261)
- transformers:
-
Pipes.extend prepends pipe factories instead of appending them.
Pipes.append has been renamed into Pipes.extend.
(4c8ea129)
<a name"2.0.0-alpha.31">
- build:
- compiler: keep
DOM.hasProperty
in sync between browser and transformer. (b3a763a7, closes #2984, #2981) - css_shim: fixes multiple uses of polyfill-unscoped-rule. (749d0432)
- di:
- example: add missing todo (1427d73b)
- package.json: move some deps into dev deps. (546a8f92, closes #2448)
- router:
- transform: handle multiple interfaces in directive processor (ac50ffca, closes #2941)
- transformer:
- tsconfig: target should be lower case (0792f1a7, closes #2938)
- upgrade clang-format to v1.0.28. (45994a53)
- build: Allow building in windows without admin priviledges (f1f57843, closes #2873)
- forms: changed all form directives to have basic control attributes (3f7ebde0)
- license: include license files in dev and dev.sfx bundles (1eab4f5f)
- pipes:
- query: initial implementation of view query. (7ee6963f, closes #1935)
- router:
- test: add test bundle (71c65b47)
- zone: add "on event done" zone hook (0e28297e)
-
Directives will use the Unbounded visibility by default, whereas before the change they used Self
(04baa46e)
-
As part of this change, the former "defaultPipes" export is now a Pipes instance, instead of a map. The map that was previously called "defaultPipes" no longer exists, but may be accessed via defaultPipes.config.
This change renames all instances of PipeRegistry to Pipes.
(9a70f84e)
-
We export InjectMetadata instead of InjectAnnotation
(b54e7214)
<a name"2.0.0-alpha.30">
- handle errors w/o file information. (e69af1a3)
- .d.ts: correct ComponentAnnotation inheritance (12a427e1, closes #2356)
- Http: add support for headers (883b5064)
- angular2.d.ts: show typing for Component, etc (b10d7a2e)
- change_detection:
- compiler: detect and strip data- prefix from bindings (cd65fc2a, closes #2687, #2719)
- di: injecting null causes a cyclic dependency (d1393b05)
- forms: Remove cyclic dependency (e5405e4b, closes #2856)
- router:
- transformer:
- upgrade t2dart to 0.6.8. (d381c5fc)
- NgStyle: Export NgStyle in angular2/directives (edf5053b, closes #2878)
- router: support deep-linking to siblings (286a249a, closes #2807)
- transformer: Support @Injectable() on static functions (7986e7ce)
- typings: mark void methods in angular2.d.ts (a56d33d7)
<a name"2.0.0-alpha.29">
- export top-level pipe factories as const (393f703a)
- Router: mark Pipeline and RouteRegistry as Injectable (eea989be)
- build:
- bundle:
- change detectors: Fix deduping of protos in transformed dart mode. (73a939e7)
- compiler: don't trigger duplicated directives (0598226e, closes #2756, #2568)
- docs:
- dynamic_component_loader: check whether the dynamically loaded component has already been destroyed (d6cef88d, closes #2748, #2767)
- transformer:
- typings: Minor issues preventing angular2.d.ts from working in TS 1.4. (7a4a3c85)
- upgrade clang-format and gulp-clang-format. (1f7296c0)
- NgStyle: add new NgStyle directive (b50edfd1, closes #2665)
- async: added PromiseWrapper.wrap (b688dee4)
- benchpress: initial support for firefox (0949a4b0, closes #2419)
- build: add tslint to the build. (bc585f27)
- di:
- facade: add ListWrapper.toJSON method (23350755)
- http: refactor library to work in dart (55bf0e55, closes #2415)
- lang: added originalException and originalStack to BaseException (56245c6a)
- pipes:
- router: support deep-linking to anywhere in the app (f66ce096, closes #2642)
- transformers: provide a flag to disable inlining views (dcdd7306, closes #2658)
THe appInjector property has been removed. Instead use viewInjector or hostInjector.
(f0e962c5)
-
The Http module previously would return RxJS Observables from method calls
of the Http class. In order to support Dart, the module was refactored to return the EventEmitter abstraction instead, which does not contain the same combinators or subscription semantics as an RxJS Observable. However, the EventEmitter provides a toRx() method which will return an RxJS Subject, providing the same subscription and combinator conveniences as were available prior to this refactor.
This is temporary, until issue #2794 is resolved, when Observables will again be returned directly from Http class methods.
(34eaf65a)
- HttpFactory is no longer available.
This factory provided a function alternative to the
request
method of the Http class, but added no real value. The additional factory required an additional IHttp interface, an odd way to inject while preserving type information (@Inject(HttpFactory) http:IHttp
), and required additional documentation in the http module.
Closes #2564
(146dbf12)
<a name"2.0.0-alpha.28">
- ShadowDomStrategy: always inline import rules (1c4d233f, closes #1694)
- XHRImpl: file:/// and IE9 bugs (cd735c48)
- annotations: swap DirectiveArgs & ComponentArgs (dcc4bc27)
- benchmarks: add waits for naive scrolling benchmark to ensure loading (d8929c1d, closes #1706)
- benchpress: do not throw on unkown frame timestamp event (ed3af5f7, closes #2622)
- change detection: preserve memoized results from pure functions (5beaf6d7)
- compiler: make text interpolation more robust (9d4111d6, closes #2591)
- docs: Fix docs for Directive.compileChildren (9700e806)
- injectors: sync injector tree with dom element tree. (d800d2f5)
- parse5: do not try to insert empty text node (0a2f6ddc)
- render: fix failing tests in dynamic_component_loader.ts (6149ce28)
- router: return promise with error handler (bc798b18)
- transformer: Throw unimplemented errors in HtmlAdapter. (f9d72bd8, closes #2624, #2627)
- views: remove dynamic component views, free host views, free embedded views (5dee8e26, closes #2472, #2339)
- update clang-format to 1.0.21. (254e58c2)
- remove MapWrapper.clear(). (94136201)
- remove MapWrapper.contains(). (dfd30910)
- remove MapWrapper.create()/get()/set(). (be7ac9fd)
- add constructors without type arguments. (35e882e7)
- upgrade ts2dart to 0.6.4. (58b38c92)
- CSSClass: add support for string and array expresions (8c993dca, closes #2025)
- compiler: detect dangling property bindings (d7b9345b, closes #2598)
- element_injector: support multiple injectables with the same token (c899b0a7)
- host: limits host properties to renames (92ffc465)
- mock: add mock module and bundle (29323777, closes #2325)
- query: added support for querying by var bindings (b0e2ebda)
- render: don’t use the reflector for setting properties (0a51ccbd, closes #2637)
- router:
- transformers: inline styleUrls to view directive (f2ef90b2, closes #2566)
- typings: add typing specs (24646e7e)
- 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 the
properties
field in the @Directive
/ @Component
annotation).
Closes #2598
(d7b9345b) * This PR remove an ability to use pipes in the properties config. Instead, inject the pipe registry.
(20a8f0db)
<a name"2.0.0-alpha.27">
- makes NgModel work in strict mode (eb3586d7)
- Class factory now adds annotations (bc9e482b)
- improve type safety by typing
refs
. (4ae7df27) - improve type of TreeNode.children. (c3c2ad14)
- add types for ts2dart's façade handling. (f3d74185)
- rename FORWARD_REF to forwardRef in the Angular code base. (c4ecbf0a)
- declare var global. (13466604)
- Improve error message on missing dependency (2ccc65d7)
- compare strings with StringWrapper.equals (633cf636)
- corrected var/# parsing in template (a4183971, closes #2084)
- increase the stack frame size for tests (ab8eb4f6)
- include error message in the stack trace (8d081ea7)
- Compiler: fix text nodes after content tags (d599fd34, closes #2095)
- DirectiveMetadata: add support for events, changeDetection (b4e82b8b)
- JsonPipe: always transform to json (e77710a3)
- Parser: Parse pipes in arguments (f9745327, closes #1680)
- ShadowDom: fix emulation integration spec to test all 3 strategies (6e385154, closes #2546)
- analzyer: removed unused imports (902759e1)
- benchmarks: Do not apply the angular transformer to e2e tests (cee26826)
- bootstrap: temporary disable jit change detection because of a bug in handling pure functio (9908def8)
- broccoli: ensure that inputTrees are stable (928ec1c5)
- build:
- bundle: makes interfaces.ts non-empty when transpiled. (83e99fc7)
- change detect: Fix bug in JIT change detectors (e0fbd4b6)
- ci: remove non-existent gulp task from test_e2e_dart (1cf807c3, closes #2509)
- dartfmt: don't break win32 command line limit (617d6931, closes #2420, #1875)
- diffing-broccoli-plugin: wrapped trees are always stable (7611f92f)
- docs:
- dynamic_component_loader:
- element_injector: changed visibility rules to expose hostInjector of the component to its shadow d (c51aef9f)
- forms:
- life_cycle: throw when recursively reentering LifeCycle.tick (af35ab56)
- locals: improved an error message (4eb8c9b2)
- ng_zone: updated zone not to run onTurnDown when invoking run synchronously from onTurnDo (15dab7c5)
- npm: update scripts and readme for npm packages. (8923103c, closes #2377)
- router:
- selector: select by attribute independent of value and order (9bad70be, closes #2513)
- shadow_dom: moves the imported nodes into the correct location. (92d56584)
- shrinkwrap: restore fsevents dependency (833048f3, closes #2511)
- view: local variables override local variables set by ng-for (d8e27953)
- allow Type.annotations = Component(...).View(...) (b2c66949, closes #2577)
- support decorator chaining and class creation in ES5 (c3ae34f0, closes #2534)
- update ts2dart to 0.6.1. (96137724)
- adjust formatting for clang-format v1.0.19. (a6e71239)
- upgrade to clang-format v1.0.19. (1c2abbc6)
- AstTranformer: add support for missing nodes (da60381c)
- BaseRequestOptions: add merge method to make copies of options (93596dff)
- Directive: Have a single Directive.host which mimics HTML (f3b49378, closes #2268)
- ElementInjector: throw if multiple directives define the same host injectable (6a6b43de)
- Events: allow a different event vs field name (29c72abc, closes #2272, #2344)
- FakeAsync: check pending timers at the end of fakeAsync in Dart (53694eb6)
- Http: add Http class (b68e561c, closes #2530)
- Parser:
- View: add support for styleUrls and styles (ac3e624d, closes #2382)
- benchpress:
- broccoli:
- build: add
test.unit.dartvm
for a faster roundtrip of dartvm tests (46eeee6b) - change detect: Throw on attempts to use dehydrated detector (b6e95bb9)
- diffing-broccoli-plugin: support multiple inputTrees (41ae8e76, closes #1815, #2064)
- e2e: added e2e tests for forms (552d1ed6)
- facade: add isMap method (548f3dd5)
- forms:
- forms.ts: formInjectables with FormBuilder (a6cb86ba, closes #2367)
- http: add basic http service (21568106, closes #2028)
- query:
- router:
- transform: update for Directive.host (591f742d)
- transformers: updated transformers (e5419feb)
- view: added support for exportAs, so any directive can be assigned to a variable (69b75b7f)
- By default Query only queries direct children.
(355ab5b3) * 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'
}
})
(f3b49378) * no longer cache ref
(e77710a3)
<a name"2.0.0-alpha.26">
- format a file that slipped in. (471a1b6d)
- fix clang errors (01fb8e66)
- ShadowCss: keyframes tests failing in Safari (4c8e11a5, closes #2283)
- Tools: Moves files out of dart2js/**/web. (40150379)
- ast: fix the size of a list in _evalListCache (0387221d)
- benchpress:
- binding: unbalanced curly brackets in documentation (a80921b4)
- browser_adapter:
- HTMLStyleElement.innerText does not trigger creation of CSS rules (Firefox) (b2a24e02)
- event creation fails (IE11, Firefox) (665ccafd)
- element.getBoundingClientRect fails when element not in DOM (IE11) (f35dbb99)
- element.matches only available with prefix (IE11) (a393f84f)
- assigning null to document.title sets the title to "null" (IE11, Firefox) (92c2c33a)
- build:
- collection:
- core: resurrect OnChange interface (d48fae35)
- dartdocs: Hide duplicate exports from guinness. (17e1d7f1)
- deps: Update clang-format to 1.0.14. (15f1eb28)
- di: allow
@Inject(…)
to work in dart2js and dynamic reflection (4a3fd5e8, closes #2185) - docs: generate d.ts file only for angular2/angular2. (0a0b84a0)
- dom:
- example: unused event (f83f1ee0)
- examples: update form example to use NgIf (1ad65582)
- facade:
- fake_async: fixed fakeAsync to throw instead of crashing on cjs (5c53cf64)
- forms: disabled form tests on cjs until fakeAsync is fixed (cd52d8a3)
- gulp: prevent duplicate error messages (381d4cb3, closes #2021)
- injectable: add missing @Injectables annotations (0c7f05f5, closes #2173)
- package.json: add
reflect-metadata
to package.json (60801777, closes #2170) - render:
- router: event.defaultPrevented is not reliable (IE11) (2287938f)
- selector: support multiple
:not
clauses (62a95823, closes #2243) - test:
- clang formatting errors (05d66bba)
- solve CSS discrepancies across browsers (fb42d590, closes #2177)
- use a not expandable CSS rule in ShadowCSS spec (Firefox) (588fbfd8, closes #2061)
- adds longer timers for NgZone and PromisePipe tests (IE11) (661a0479, closes #2055)
- native shadow DOM is required (IE11, Firefox) (9802debf)
- function.name is not available (IE11) (5103f080)
- tests: disable mobile emulation so benchmarks run on current chrome (b071b66b)
- types: parametrize QueryList. (552985e3)
- add support for the safe navigation (aka Elvis) operator (a9be2ebf, closes #791)
- Directive: convert properties to an array (d7df853b, closes #2013)
- ElementInjector: support an arbitrary number of bindings (b1c9bf14, closes #1853)
- OpaqueToken: now a const constructor (c571b269)
- RegExpWrapper: implement a test method (551586ce)
- benchpress: Add extension for ff metrics reporting (b390f441, closes #1976)
- binding: throw on binding to a blank alias (ec2d8cc2, closes #2068)
- broccoli: add incremental dartfmt plugin (e5d06e47, closes #2211)
- change_detection: added onInit and onCheck hooks (c39c8ebc)
- change_detection.ts: export PipeFactory (93f464a1, closes #2245)
- core:
- di: added optional self parameter to Parent, Ancestor, and Unbounded (34cfc9f4)
- dom: add
setData()
method. (6f3368ef) - facade: add read/write access to global variables (cdf791f0)
- fakeAsync: flush the microtasks before returning (c7572ac1, closes #2269)
- form: implemented an imperative way of updating the view by updating the value of a co (652ed0cf)
- forms:
- added support for status classes (3baf815d)
- added touched and untouched to Control (ec3a7828)
- renamed control, control-group into ng-control and ng-control-group (f543834b)
- changed the selector of TemplatdrivenFormDirective to match (6bef1c41)
- added ng-model (559f54e9)
- implemented template-driven forms (a9d6fd9a)
- key_event: alias esc to escape (10bc7e94, closes #2010)
- reflector: added a method to get type's interfaces (34d75e89)
- render: re-export render and export
DirectiveResolver
(662da0d7, closes #2026) - router: add the router bundle to the bundle task. (05fa9bc9)
- router.js:
- test:
- test_lib:
- tests: add TestComponentBuilder (c32dbad7, closes #1812)
- transformers: added support for lifecycle events (f19970a4)
- view:
Renderer.detachFreeHostView
was renamed toRenderer.detachFreeView
DomRenderer.getHostElement()
was generalized intoDomRenderer.getRootNodes()
(5030ffb0)
*
now a const
constructor
(c571b269) * Before
@Directive(properties: {
'sameName': 'sameName',
'directiveProp': 'elProp | pipe'
})
After
@Directive(properties: [
'sameName',
'directiveProp: elProp | pipe'
])
(d7df853b)
<a name"2.0.0-alpha.25">
- don't call onAllChangesDone on checkNoChanges (a664f5a6)
- XHRImpl: fix errors, add a spec (91ccc9af, closes #1715)
- browser: template elements should have content imported instead of the element itself. (c9ab8e4b)
- di: changed host and view injector to respect visibility (705ee46f)
- element_injector:
- forms: changed forms to create only one value accessor instead of always creating Defau (30c3e5a8)
- gulp: continue watching when tasks throw (ac28ac32, closes #1915)
- router: router link should navigate to non-base Url. (c4528321)
- test_lib: fixes nested beforeEach. (826af401)
- CD: add support for === and !== (0ae89ac0)
- PromisePipe: remove ref onDestroy (4afd2b41)
- di: changed toFactory to support dependency annotations (f210c41c)
- forms: migrated forms to typescript (00c3693d)
- injector: support forwardRef in toAlias (fed86fc8)
<a name"2.0.0-alpha.24">
- Compiler: add an error when a directive is null or undefined (25cd6e43, closes #1908)
- benchmark:
- build: npm shrinkwrap to pick up changed SHA1. (04a9eb88)
- directives: fix import path (c20060d2)
- errors: require passing stack traces explicitly in ng2 own code (8ab77353)
- examples: prefix directives with Ng (0e82970a)
- facade: MapWrapper.createFromPairs (af9dcad8, closes #1640)
- ng1 benchmarks: revert *ng-if to ng-if (909233f7)
- router:
- tree-differ: treat symlinks to deleted paths as removals (aad57954, closes #1961)
- allow for forward references in injection (1eea2b25, closes #1891)
- change_detection:
- compiler:
- di:
- element_injector: allow @Optional for ProtoViewRef (bb2eda2d)
- errors: preserve stack traces of user exceptions in Dart (b6f29b44)
- facade: toUpperCase and toLowerCase (557d54b3)
- fakeAsync: allow simulating the passage of time (0f002a5b)
- forms: improved error messages (11e43851, closes #1839)
- pipe: reexported pipes to genereate docs (155b1e2b)
AppViewManager.createInPlaceHostView
is replaced byAppViewManager.createRootHostView
(for bootstrap) andAppViewManager.createFreeHostView
(for imperative components).
The later creates new host elements that are not attached anywhere.
To attach them, use DomRenderer.getHostElement(hostviewRef)
to get the host element.
Closes #1920
(421d8916)
-
- renames
DirectiveMetadataReader
intoDirectiveResolver
and removessrc/core/compiler/directive_metadata
.
- renames
Fixes #1712 Fixes #1713 (ecb06801)
<a name"2.0.0-alpha.23">
- change_detection: updated dynamic change detector not to mutate when throwing (d717529e, closes #1762)
- dart: Remove unused imports. (4ce0d5e0)
- forms: export directives as const in Dart (5036086f, closes #1283)
- gulpfile: fixed test.unit.dart to format dart code before running test (92d6aa1f)
- location: dartium does not like pushState with null. (c2a42d5d)
- router:
- test_lib: spy funcs should match null arguments (84dc6ae7)
- transformer: remove classDefParser in favor of hardcoded strings to speed up build (01d5c295)
- view: fixed ProtoViewFactory to get all property bindings (7f976381)
- PromisePipe: add pipe for promises (74987585)
- VmTurnZone: Rework the implementation to minimize change detection runs (e8a6c95e)
- change_detection.js: export null pipes (4b62a722, closes #1624)
- compiler:
- di:
- directives: export collection of core directives (a5638a94, closes #1524)
- dom: add getBaseHref method (05219a54)
- facade: add equals method to StringMapWrapper (aff85b50)
- gulpfuile: added watch.js.dev (3256ff1c)
- lang: support const expressions in TS/JS and Dart (4665726f, closes #1796)
- material:
- view: allow to transplant a view into a ViewContainer at another place. (4f3433b5, closes #1492)
VmTurnZone has been renamed to NgZone.
- The public API has not chnanged,
- The "outer" zone is now named "mount" zone (private to NgZone).
(e11c2054)
*
A collection of all the form directives is exported
under formDirectives
while those were previously available
under FormDirectives
.
Closes #1804
(229e770a)
<a name"2.0.0-alpha.22">
- brocolli: escape special regexp characters when building regexps (a58c9f83, closes #1721, #1752)
- build:
- bundle: update the bundle config to point to rx.js (cf322130)
- change_detector: ensure that locals are only used when implicit receiver (d4925b61, closes #1542)
- compiler:
- decorators:
- decorators.es6: export Directive decorator (93c331d1, closes #1688)
- di: improve error messages for invalid bindings (ee1b574b, closes #1515, #1573)
- docs: fix broken docs test after addition of .ts extension to dgeni regex. (62bf777e)
- exception_handler: log errors via
console.error
(ead21c91) - formatter: point to the newest clang-format (51c47792)
- router:
- view: changed view manager to hydrate change detector after creating directives (c1579222)
- benchmark: added an implementation of the tree benchmark in React (e4342743)
- benchmarks: Add basic dart transformer benchmarks. (1864f60a)
- decorators:
- dom: add location and history as DOM-like APIs. (f356d033)
- material: add prototype dialog component w/ demo. (f88c4b77)
- router:
- Previously,
Directive
was the abstract base class of several directives. Now,Directive
is the formerDecorator
, andComponent
inherits from it.
(f75a50c1)
- A dynamic component is just a component that has no @View annotation… (8faf6364)
- dart/transform: Dedup getters, setters, & methods (15376a6d)
- facade: add isType method (e617ca63)
- parser: support === and !== operators (afe0e454, #1496, #1500)
- router: add initial implementation (1b2754da)
- view: reimplemented property setters using change detection (8ccafb05)
- benchmarks: