feat(Compiler): Multiple template per component
fixes #596 - TemplateConfig becomes Template - introduce a TemplateResolver to pick the cmp template, - @Component and @Template are disociated
This commit is contained in:
@ -1,11 +1,12 @@
|
||||
import {Parser, Lexer, ChangeDetector, ChangeDetection, jitChangeDetection}
|
||||
from 'angular2/change_detection';
|
||||
|
||||
import {bootstrap, Component, Viewport, TemplateConfig, ViewContainer, Compiler} from 'angular2/angular2';
|
||||
import {bootstrap, Component, Viewport, Template, ViewContainer, Compiler} from 'angular2/angular2';
|
||||
|
||||
import {CompilerCache} from 'angular2/src/core/compiler/compiler';
|
||||
import {DirectiveMetadataReader} from 'angular2/src/core/compiler/directive_metadata_reader';
|
||||
import {TemplateLoader} from 'angular2/src/core/compiler/template_loader';
|
||||
import {TemplateResolver} from 'angular2/src/core/compiler/template_resolver';
|
||||
import {ShadowDomStrategy, NativeShadowDomStrategy} from 'angular2/src/core/compiler/shadow_dom_strategy';
|
||||
import {LifeCycle} from 'angular2/src/core/life_cycle/life_cycle';
|
||||
|
||||
@ -24,28 +25,26 @@ function setupReflector() {
|
||||
reflector.registerType(AppComponent, {
|
||||
'factory': () => new AppComponent(),
|
||||
'parameters': [],
|
||||
'annotations' : [new Component({
|
||||
selector: 'app',
|
||||
template: new TemplateConfig({
|
||||
'annotations' : [
|
||||
new Component({selector: 'app'}),
|
||||
new Template({
|
||||
directives: [TreeComponent],
|
||||
inline: `<tree [data]='initData'></tree>`
|
||||
})
|
||||
})]
|
||||
})]
|
||||
});
|
||||
|
||||
reflector.registerType(TreeComponent, {
|
||||
'factory': () => new TreeComponent(),
|
||||
'parameters': [],
|
||||
'annotations' : [new Component({
|
||||
selector: 'tree',
|
||||
bind: {
|
||||
'data': 'data'
|
||||
},
|
||||
template: new TemplateConfig({
|
||||
directives: [TreeComponent, NgIf],
|
||||
inline: `<span> {{data.value}} <span template='ng-if data.right != null'><tree [data]='data.right'></tree></span><span template='ng-if data.left != null'><tree [data]='data.left'></tree></span></span>`
|
||||
})
|
||||
})]
|
||||
'annotations' : [
|
||||
new Component({
|
||||
selector: 'tree',
|
||||
bind: {'data': 'data'}
|
||||
}),
|
||||
new Template({
|
||||
directives: [TreeComponent, NgIf],
|
||||
inline: `<span> {{data.value}} <span template='ng-if data.right != null'><tree [data]='data.right'></tree></span><span template='ng-if data.left != null'><tree [data]='data.left'></tree></span></span>`
|
||||
})]
|
||||
});
|
||||
|
||||
reflector.registerType(NgIf, {
|
||||
@ -60,9 +59,10 @@ function setupReflector() {
|
||||
});
|
||||
|
||||
reflector.registerType(Compiler, {
|
||||
'factory': (cd, templateLoader, reader, parser, compilerCache, strategy) => new Compiler(cd, templateLoader, reader, parser, compilerCache, strategy),
|
||||
'factory': (cd, templateLoader, reader, parser, compilerCache, strategy, resolver) =>
|
||||
new Compiler(cd, templateLoader, reader, parser, compilerCache, strategy, resolver),
|
||||
'parameters': [[ChangeDetection], [TemplateLoader], [DirectiveMetadataReader],
|
||||
[Parser], [CompilerCache], [ShadowDomStrategy]],
|
||||
[Parser], [CompilerCache], [ShadowDomStrategy], [TemplateResolver]],
|
||||
'annotations': []
|
||||
});
|
||||
|
||||
@ -84,6 +84,12 @@ function setupReflector() {
|
||||
'annotations': []
|
||||
});
|
||||
|
||||
reflector.registerType(TemplateResolver, {
|
||||
'factory': () => new TemplateResolver(),
|
||||
'parameters': [],
|
||||
'annotations': []
|
||||
});
|
||||
|
||||
reflector.registerType(XHR, {
|
||||
'factory': () => new XHRImpl(),
|
||||
'parameters': [],
|
||||
|
Reference in New Issue
Block a user