- Rename `DirectiveMetadata` into `CompileDirectiveMetadata`, merge
with `NormalizedDirectiveMetadata` and remove `ChangeDetectionMetadata`
- Store change detector factories not as array but
directly at the `CompiledTemplate` or the embedded template
to make instantiation easier later on
- Already analyze variable values and map them
to `Directive.exportAs`
- Keep the directive sort order as specified in the
`@View()` annotation
- Allow to clear the runtime cache in `StyleCompiler`
and `TemplateCompiler`
- Ignore `script` elements to match the semantics of the
current compiler
- Make all components dynamically loadable and remove
the previously introduced property `@Component#dynamicLoadable`
for now until we find a better option to configure this
- Don’t allow to specify bindings in `@View#directives` and `@View#pipes` as this was never supported by the transformer (see below for the breaking change)
BREAKING CHANGE:
- don't support DI bindings in `@View#directives` and `@View@pipes` any more in preparation of integrating the new compiler. Use `@Directive#bindings` to reexport directives under a different token instead.
Part of #3605Closes#4314
The debug tools used to take ApplicationRefs, which are the old return
type of bootstrap. Now bootstrap returns ComponentRef, so the debug
tools should be updated.
Closes#4203
This change adds a syntax for bootstrapping Angular on a page that allows more fine-grained control of the hierarchy created. platform() creates a platform injector (of which there can only be one). From the platform, .application() creates an Angular application including a Zone and all specified application bindings (e.g. for the DOM, HTTP, Compiler, Renderer, etc). At the application level, .bootstrap() will bootstrap the given component into that application.
Closes#3852
With the coming bootstrapping changes, a single application (and thus Router) can have multiple root components. One of these needs to be identified as the "primary" component from which the Router will load its configuration. This is now done by providing a ROUTER_PRIMARY_COMPONENT binding to the primary component type.
Previosly, recognition ended when a parent captured all the parsed URL segments.
This caused routes that delegated from a parent to a child with an empty segment
to never be recognized.
Closes#4178
Previously, `router.navigate` took a string representing the URL.
Now, it accepts an array that mirrors the link DSL.
Closes#4040
BREAKING CHANGE
The old method has been renamed to `router.navigateByUrl`.
Either change your navigation calls to use the DSL (preferred) or
call `router.navigateByUrl` instead.
Closes#4074
Previously, async routes generated from links would not load the configs of
their resolved components, which led to broken links in the children of the
async instruction's component.
This commit fixes the bookkeeping in the Router to correctly load the configs.
Fixes internal b/23791558
Closes#4146