Tobias Bosch
f2bbef3e33
fix(core): allow to query content of templates that are stamped out at a different place
...
Previously, if a `TemplateRef` was created in a `ViewContainerRef`
at a different place, the content was not query able at all.
With this change, the content of the template can be queried
as if it was stamped out at the declaration place of the template.
E.g. in the following example, the `QueryList<ChildCmp>` will
be filled once the button is clicked.
```
@Component({
selector: ‘my-comp’,
template: ‘<button #vc (click)=“createView()”></button>’
})
class MyComp {
@ContentChildren(ChildCmp)
children: QueryList<ChildCmp>;
@ContentChildren(TemplateRef)
template: TemplateRef;
@ViewChild(‘vc’, {read: ViewContainerRef})
vc: ViewContainerRef;
createView() {
this.vc.createEmbeddedView(this.template);
}
}
@Component({
template: `
<my-comp>
<template><child-cmp></child-cmp></template>
</my-comp>
`
})
class App {}
```
Closes #12283
Closes #12094
2016-11-04 10:50:27 -07:00
Tobias Bosch
e3687706c7
refactor(compiler): minor cleanup
2016-11-03 16:29:51 -07:00
Tobias Bosch
9c23884da4
perf(compiler): introduce direct rendering
...
This allows to attach / detach embedded views and projected nodes
in a faster way.
2016-11-03 16:29:51 -07:00
Tobias Bosch
0e3d655220
refactor(compiler): remove view factories, use view classes directly
2016-11-02 20:58:48 -07:00
Tobias Bosch
7c5cc9bc41
refactor(compiler): initialize RenderComponentType
eagerly
...
This moves the usage of `APP_ID` into the `DomRenderer`.
2016-11-02 20:58:48 -07:00
Tobias Bosch
5f1dddc5d0
refactor(compiler): cleanups
2016-11-02 17:06:27 -07:00
Tobias Bosch
20a4f9923f
refactor(compiler): remove view.parentInjector
2016-11-02 17:06:27 -07:00
Tobias Bosch
e7c00be19d
refactor(compiler): rename AppElement
into ViewContainer
2016-11-02 17:06:27 -07:00
Tobias Bosch
74ede9aa9b
refactor(core): don’t store view factory in TemplateRef
...
Instead, generate `createEmbeddedView`.
2016-11-02 17:06:27 -07:00
Tobias Bosch
d1035da85c
refactor(compiler): don’t use AppElement
s for creating component views
2016-11-02 17:06:27 -07:00
Tobias Bosch
13533d2a30
refactor(compiler): remove AppElement.initComponent
2016-11-02 17:06:27 -07:00
Tobias Bosch
6fda97287e
fix(compiler): support multiple components in a view container
2016-11-01 14:21:40 -07:00
Tobias Bosch
234c5599f1
refactor(compiler): remove unused constructor query support
2016-11-01 11:29:15 -07:00
Tobias Bosch
f6710fefeb
refactor(compiler): make view.disposable
array null if empty
2016-11-01 11:29:15 -07:00
Tobias Bosch
bda1909ede
refactor(compiler): remove view.rootNodes
and view.projectableNodes
...
They are replaced by generated visitor functions `view.visitRootNodes` / `view.visitProjectableNodes`.
2016-11-01 11:29:15 -07:00
Tobias Bosch
b3e3cd3add
refactor(compiler): inline view.contentChildren
2016-11-01 11:29:14 -07:00
Tobias Bosch
e5fdf4c70a
refactor(compiler): inline view.viewChildren in generated code
2016-11-01 11:29:14 -07:00
Tobias Bosch
97471d74b6
refactor(compiler): remove unused subscriptions
in view
2016-11-01 11:29:14 -07:00
Tobias Bosch
fe299f4dfc
refactor(compiler): minor cleanups
2016-10-26 14:32:24 -07:00
Tobias Bosch
4cac650675
refactor(compiler): extract expression evaluation and writing to renderer from view_compiler
...
This is needed to that `DirectiveWrapper`s can also use them later on.
Part of #11683
2016-10-26 14:32:24 -07:00
Tobias Bosch
cb7643ccea
refactor(compiler): introduce ClassBuilder
.
...
Part of #11683
2016-10-26 14:32:23 -07:00
Tobias Bosch
faa3478514
refactor(compiler): set element attributes via one call
...
This makes the cost of using directives that have host attributes
smaller.
Part of #11683
2016-10-26 14:32:23 -07:00
Victor Berchet
57051f01ce
refactor: remove most facades ( #12399 )
2016-10-21 15:14:44 -07:00
Tobias Bosch
b0a03fcab3
refactor(compiler): introduce directive wrappers to generate less code
...
- for now only wraps the `@Input` properties and calls
to `ngOnInit`, `ngDoCheck` and `ngOnChanges` of directives.
- also groups eval sources by NgModule.
Part of #11683
2016-10-20 10:41:43 -07:00
Victor Berchet
d972d82354
refactor: simplify isPresent(x) ? x : y
to x || y
( #12166 )
...
Closes #12166
2016-10-10 09:20:58 -07:00
Victor Berchet
bdcf46f82e
refactor(compiler): improve types, misc
2016-10-10 09:20:58 -07:00
Alex Eagle
8c975ed156
refactor(facade): inline StringWrapper ( #12051 )
2016-10-06 15:10:27 -07:00
Alex Eagle
b64b5ece65
refactor(facade): Remove most of StringMapWrapper facade. ( #12022 )
...
This change mostly automated by
12012b07a2
with some manual fixes.
2016-10-03 16:46:05 -07:00
vikerman
3a5b4882bc
fix(compiler): Do not embed templateUrl in view factories in non-debug mode. ( #11818 )
...
Fixes #11117 .
2016-09-27 17:09:44 -07:00
Victor Berchet
58605cf350
refactor(facade): remove useless facades
2016-09-27 16:13:09 -07:00
Matias Niemelä
f1b6c6efa1
refactor(animations): ensure animation input/outputs are managed within the template parser ( #11782 )
...
Closes #11782
Closes #11601
Related #11707
2016-09-24 05:37:04 +09:00
Matias Niemelä
c9e5b599e4
fix(animations): ensure parent animations are triggered before children ( #11201 )
2016-09-01 13:24:26 -07:00
Miško Hevery
979657989b
fix(packages): use ES modules for primary build ( #11120 )
2016-08-30 18:07:40 -07:00
Chuck Jazdzewski
51877ef4ed
fix(compiler): no longer uses assetCacheKey for token identity.
...
Fixes #10545 , Fixes #10538
2016-08-29 12:45:02 -07:00
Matias Niemelä
45e8e73670
refactor(animations): deport TCB away from animation-land forever ( #10892 )
...
* feat(animations): support animation trigger template callbacks
* refactor(animations): deport TCB away from animation-land forever
2016-08-22 17:18:25 -07:00
Victor Berchet
50345b8c36
feat(i18n): add an HtmlParser decorator ( #10645 )
...
* fix(i18n): merge retains attributes w/o value
* feat(i18n): allow attributes on ng-container (i.e. i18n)
* feat(i18n): add an HtmlParser decorator
* style: clang format
2016-08-11 21:00:35 -07:00
Victor Berchet
1b77604ee2
refactor(compiler): re-arrange files
2016-07-29 13:40:58 -07:00
Tobias Bosch
6f4e49ed53
refactor(core): rename precompile
into entryComponents
.
...
Part of #10043
BREAKING CHANGE:
- `@Component.precompile` was renamed to `@Component.entryComponents`
(old property still works but is deprecated)
- `ANALYZE_FOR_PRECOMPILE` was renamed to `ANALYZE_FOR_ENTRY_COMPONENTS` (no deprecations)
2016-07-26 07:04:36 -07:00
Matias Niemelä
806a25413c
feat(animations): allow animation integration support into host params
...
Closes #9044
Closes #9933
2016-07-12 14:55:36 -07:00
Matias Niemelä
79eda30f0f
refactor(animations): collect parser / lookup errors in the same place
2016-07-12 14:55:27 -07:00
Tobias Bosch
17e4cfc748
feat(core): introduce @AppModule
...
Main part for #9726
Closes #9730
2016-06-30 11:34:40 -07:00
Tobias Bosch
bf598d6b8b
feat(compiler): support sync runtime compile
...
Adds new abstraction `Compiler` with methods
`compileComponentAsync` and `compileComponentSync`.
This is in preparation of deprecating `ComponentResolver`.
`compileComponentSync` is able to compile components
synchronously given all components either have an inline
template or they have been compiled before.
Also changes `TestComponentBuilder.createSync` to
take a `Type` and use the new `compileComponentSync` method.
Also supports overriding the component metadata even if
the component has already been compiled.
Also fixes #7084 in a better way.
BREAKING CHANGE:
`TestComponentBuilder.createSync` now takes a component type
and throws if not all templates are either inlined
are compiled before via `createAsync`.
Closes #9594
2016-06-28 10:26:16 -07:00
vsavkin
e12b1277df
feat(core): split ChangeDetectorStrategy into ChangeDetectionStrategy and ChangeDetectorStatus
2016-06-27 20:19:20 -07:00
Tobias Bosch
6c5b653593
feat(core): add @Component.precompile
and ComponentFactoryResolver
...
Part to #9467
Closes #9543
2016-06-23 12:10:04 -07:00
ScottSWu
ae75e3640a
chore(lint): Added license headers to most TypeScript files
...
Relates to #9380
2016-06-23 09:47:54 -07:00
Victor Berchet
9cbd8f7afc
test(ng-container): test nesting ng-containers
2016-06-15 18:13:57 -07:00
Victor Berchet
8a54c1a115
refactor(ViewBuilder): cleanup
2016-06-14 19:11:30 -07:00
Victor Berchet
0dbff55bc6
feat(Compiler): add support for <ng-container>
...
`<ng-container>` is a logical container that can be used to group nodes but is not rendered in the DOM tree as a node.
`<ng-container>` is rendered as an HTML comment.
2016-06-14 19:11:30 -07:00
Alex Eagle
f39c9c9e75
style(lint): re-format modules/@angular
2016-06-09 17:00:15 -07:00
ScottSWu
86fbd50c3d
refactor(TypeScript): Add noImplicitAny
...
We automatically insert explicit 'any's where needed. These need to be
addressed as in #9100 .
Fixes #4924
2016-06-08 16:20:50 -07:00