Skip to content
This repository has been archived by the owner on Sep 16, 2022. It is now read-only.

Releases: angulardart/angular

v3.0.0-alpha+1

11 Mar 05:02
Compare
Choose a tag to compare

3.0.0-alpha+1

New features

  • We now use the formal <T> generic type syntax for methods, not /*<T>*/.

  • Re-enabled strong-mode analysis within the project, and fixed some errors.

Breaking changes

  • Removed viewBindings from Component. This has been interchangeable with
    viewProviders for a while now.

    BEFORE: dart @Component(viewBindings: const [])

    AFTER: dart @Component(viewProviders: const [])

  • Removed EventManager from the public API. Code generation is now closer to
    document.addEventListener and having this interception layer would not
    allow further optimizations.

  • Removed IterableDifferFactory and KeyValueDifferFactory from the public
    API. We have planned compiler optimizations that will no longer allow
    overriding our diffing implementations. Looking into alternatives before a
    final 3.0.0 release that are lower cost.

  • ASYNC_VALIDATORS can no longer return a Stream instance, only Future.

  • The experimental NgTestBed was removed. Use package:angular_test now.

  • By default, the ExceptionHandler is a BrowserExceptionHandler, which
    prints exceptions to the console. If you don't want this behavior (i.e.
    releasing to production), make sure to override it.

Bug fixes

  • When setting up a new NgControl, valueAccessor no longer can throw an NPE

3.0.0-alpha

18 Jan 23:41
Compare
Choose a tag to compare

3.0.0-alpha

This is the first pre-release of AngularDart 3.0.0. This code is considered
production quality, but additional breaking changes and features are planned
before releasing a final version.

New features

  • (Forms) AbstractControl.markAsDirty now emits a status change event.

Breaking changes

  • DOM adapter is now completely removed from the API and generated code
  • A name parameter is now required for all @Pipe(...) definitions:

BEFORE: dart @Pipe(name: 'uppercase')

AFTER: dart @Pipe('uppercase')

  • DomEventsPlugin now requires a strongly typed interface to dart:html.
  • Null is no longer propagated as an initial change value. Code should be
    updated to either deliver a different initial value or components with an
    @Input() should have an appropriate default value.

BEFORE

<my-component [value]="null"></my-component>
...
String _value;

set value(String value) {
  _value = value ?? 'Default name';
}

AFTER

String _value = 'Default name';

set value(String value) { _value = value; }
  • Removed NgPlural, deprecated as of 2.1.0.
  • Removed ObservableListDiffFactory, deprecated as of 2.1.0.
  • Event handlers are bound at initialization time. Therefore, the following
    will no longer work, because clickHandler is null during initialization.
@Component(
    selector: 'my-component',
    template: '<div (click)="clickHandler($event)"></div>')
class MyComponent {
  Function clickHandler;
}
  • Removed Component.moduleId, which was unused.

Deprecations

  • IterableDiffers and KeyValueDiffers are deprecated. The cost of looking
    up to see if a custom differ is available is too high for almost no use.
    Before they're removed, we'll have other customization options.

Bug fixes

  • Fixed a bug where the router didn't work on a root path in IE11.
  • Fixed generated code that caused a strong-mode warning on AppView<...>.
  • Fixed a bug where DDC didn't work properly with "pure" Pipes.
  • Some simple types are now propagated to the generated .template.dart file.

Refactors

  • Removed NgZoneImpl, all the code exists in NgZone now.
  • We now generate specific code for view and content children (faster).
  • Projectable nodes now use the visitor pattern in AppView.
  • In generated .template.dart change detected primitives are typed.
  • Moved renderType as a static class member in generated code.

2.2.0

30 Nov 17:13
Compare
Choose a tag to compare

2.2.0

API changes

  • Breaking changes
    • Using @ViewQuery|Children|Content| in a constructor is no longer valid.
      This caused significant extra code to need to be generated for a case that
      is relatively rare. Code can safely be moved into a setter in most cases.

BEFORE

class MyComponent {
  QueryList<ChildComponent> _childComponents;

  MyComponent(@ContentChildren(ChildComponent) this._childComponents);
}

AFTER

class MyComponent {
  QueryList<ChildComponent> _childComponents;

  @ContentChildren(ChildComponent)
  set childComponents(QueryList<ChildComponent> childComponents) {
    _childComponents = childComponents;
  }
}

Bug fixes

  • Importing angular2/reflection.dart now works properly.

2.1.1

28 Nov 21:15
Compare
Choose a tag to compare

2.1.1

API changes

  • Introduced angular2/reflection.dart as canonical way to opt-in to mirrors.
    In 2.2.0 it will be considered deprecated to enable runtime reflection by
    any other means.