BREAKING CHANGE: - Renderer: * renderComponent method is removed form `Renderer`, only present on `RootRenderer` * Renderer.setDebugInfo is removed. Renderer.createElement / createText / createTemplateAnchor now take the DebugInfo directly. - Query semantics: * Queries don't work with dynamically loaded components. * e.g. for router-outlet: loaded components can't be queries via @ViewQuery, but router-outlet emits an event `activate` now that emits the activated component - Exception classes and the context inside changed (renamed fields) - DebugElement.attributes is an Object and not a Map in JS any more - ChangeDetectorGenConfig was renamed into CompilerConfig - AppViewManager.createEmbeddedViewInContainer / AppViewManager.createHostViewInContainer are removed, use the methods in ViewContainerRef instead - Change detection order changed: * 1. dirty check component inputs * 2. dirty check content children * 3. update render nodes Closes #6301 Closes #6567
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import {Injectable} from 'angular2/src/core/di';
|
|
|
|
import * as o from '../output/output_ast';
|
|
import {CompileElement} from './compile_element';
|
|
import {CompileView} from './compile_view';
|
|
import {buildView, ViewCompileDependency} from './view_builder';
|
|
|
|
import {CompileDirectiveMetadata, CompilePipeMetadata} from '../compile_metadata';
|
|
|
|
import {TemplateAst} from '../template_ast';
|
|
import {CompilerConfig} from '../config';
|
|
|
|
export class ViewCompileResult {
|
|
constructor(public statements: o.Statement[], public viewFactoryVar: string,
|
|
public dependencies: ViewCompileDependency[]) {}
|
|
}
|
|
|
|
@Injectable()
|
|
export class ViewCompiler {
|
|
constructor(private _genConfig: CompilerConfig) {}
|
|
|
|
compileComponent(component: CompileDirectiveMetadata, template: TemplateAst[],
|
|
styles: o.Expression, pipes: CompilePipeMetadata[]): ViewCompileResult {
|
|
var statements = [];
|
|
var dependencies = [];
|
|
var view = new CompileView(component, this._genConfig, pipes, styles, 0,
|
|
CompileElement.createNull(), []);
|
|
buildView(view, template, dependencies, statements);
|
|
return new ViewCompileResult(statements, view.viewFactory.name, dependencies);
|
|
}
|
|
}
|