Releases: angulardart/angular
v3.0.0-alpha+1
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
fromComponent
. 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
andKeyValueDifferFactory
from the public
API. We have planned compiler optimizations that will no longer allow
overriding our diffing implementations. Looking into alternatives before a
final3.0.0
release that are lower cost. -
ASYNC_VALIDATORS
can no longer return aStream
instance, onlyFuture
. -
The experimental
NgTestBed
was removed. Usepackage:angular_test
now. -
By default, the
ExceptionHandler
is aBrowserExceptionHandler
, 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
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 todart: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, becauseclickHandler
isnull
during initialization.
@Component(
selector: 'my-component',
template: '<div (click)="clickHandler($event)"></div>')
class MyComponent {
Function clickHandler;
}
- Removed
Component.moduleId
, which was unused.
Deprecations
IterableDiffers
andKeyValueDiffers
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"
Pipe
s. - Some simple types are now propagated to the generated
.template.dart
file.
Refactors
- Removed
NgZoneImpl
, all the code exists inNgZone
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
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.
- Using
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
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.