Angular2,如何将变量传递给克隆的模板
Angular2, how to pass a variable to a template that is cloned
在 Angular2 中,我有一个模板代码,只要用户单击一个按钮,我就会克隆它,就像这里回答的那样
我正在尝试向它传递一个变量,但它不起作用。怎么了?
import {Component, NgModule, ViewChild, ViewContainerRef} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
@Component({
selector: 'my-app',
template: `
<template #clone let-session>
<div [id]="session">eps {{session}} ya</div>
</template>
<div #container></div>
<div>
<button (click)="create()">Hello</button>
</div>
`,
})
export class App {
name:string;
@ViewChild('clone') clone:any;
@ViewChild('container', {read:ViewContainerRef}) container:any;
constructor() {
this.name = 'Angular2'
}
create(){
let session = 'testing';
this.container.createEmbeddedView(this.clone, {context: {$implicit: session}});
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
create_new_session(s : string) {
this.container.createEmbeddedView(this.clone, {context: {$implicit: session}});
}
<template #clone let-session>
<section [id]="session"
[bookmark_draggable_target]="{event_type:'moving_sessions',zone:'title_template'}"
(drop_here)="onDrop($event)">
</section>
</template>
我已经更新了你的plunkr, basically answer could be found in #8368:
<template #clone let-context="context">
<div [id]="context.session">eps {{context.session}} ya</div>
</template>
this.container.createEmbeddedView(this.clone, {context: {session: session}});
在 Angular2 中,我有一个模板代码,只要用户单击一个按钮,我就会克隆它,就像这里回答的那样
我正在尝试向它传递一个变量,但它不起作用。怎么了?
import {Component, NgModule, ViewChild, ViewContainerRef} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
@Component({
selector: 'my-app',
template: `
<template #clone let-session>
<div [id]="session">eps {{session}} ya</div>
</template>
<div #container></div>
<div>
<button (click)="create()">Hello</button>
</div>
`,
})
export class App {
name:string;
@ViewChild('clone') clone:any;
@ViewChild('container', {read:ViewContainerRef}) container:any;
constructor() {
this.name = 'Angular2'
}
create(){
let session = 'testing';
this.container.createEmbeddedView(this.clone, {context: {$implicit: session}});
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
create_new_session(s : string) {
this.container.createEmbeddedView(this.clone, {context: {$implicit: session}});
}
<template #clone let-session>
<section [id]="session"
[bookmark_draggable_target]="{event_type:'moving_sessions',zone:'title_template'}"
(drop_here)="onDrop($event)">
</section>
</template>
我已经更新了你的plunkr, basically answer could be found in #8368:
<template #clone let-context="context">
<div [id]="context.session">eps {{context.session}} ya</div>
</template>
this.container.createEmbeddedView(this.clone, {context: {session: session}});