嗨我是angular 2的新手,我在過去的一週中使用了angular 2,並想知道是否可以使用動態模板和動態樣式生成動態組件。這意味着follwoing應該是這樣的在Angular 2中創建一個動態組件
@Component({
// 2a
selector: 'dynamic placeholder',
// 2b
styles: [`dynamic styles`]
// 2c
template: `dynmic template`
})
是有可能做到這一點在角2,我記得這是這樣,也許可能在角1
任何幫助將不勝感激(Escpecially plunkers用簡單的代碼)
這是我迄今取得:嘗試使用ComponentFactoryResolver:
@NgModule({
imports: [BrowserModule],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule {
}
@Component({
selector: 'my-app',
template: `
<div>Hello, world!</div>
`
})
export class AppComponent {
}
@NgModule({
declarations: [HomeComponent],
exports: [HomeComponent]
})
export class HomeModule {
}
@Component({
selector: 'home',
template: `
<div>This is home</div>
`
})
export class HomeComponent {
}
@Component({
selector: 'hello-world',
template: `
<div>
Hello, world!, {{name}}
The answer is: {{getAnswer()}}
</div>
`
})
export class HelloWorldComponent implements AfterViewInit {
private name:string = 'You';
constructor(private helloWorldService: HelloWorldService) {
}
ngAfterViewInit(): void {
this.name = 'Me';
}
private getAnswer() {
return this.helloWorldService.giveMeTheAnswer();
}
}
@NgModule({
declarations: [HomeComponent, HelloWorldComponent],
providers: [HelloWorldService],
exports: [HomeComponent]
})
export class HomeModule {
}
@Component({
selector: 'home',
template: `
<button (click)="sayHello()">Say hello</button>
<div>This is home</div>
`
})
export class HomeComponent {
constructor(private componentFactoryResolver: ComponentFactoryResolver,
private viewContainerRef: ViewContainerRef) {
}
private sayHello() {
const factory = this.componentFactoryResolver.resolveComponentFactory(HelloWorldComponent);
const ref = this.viewContainerRef.createComponent(factory);
ref.changeDetectorRef.detectChanges();
}
}
這裏是一個plunker使創建動態組件,我不知道是否創建動態CSS是可能的,我會很高興,如果一些我可以回答我的問題: http://plnkr.co/edit/ZXsIWykqKZi5r75VMtw2?p=preview
StackOverflow不是讓你讓人爲你寫代碼的地方。向我們展示您的嘗試並做出堅實的努力 –
好的我會以正確的方式上傳它,代碼甚至不會工作 – Brk
而不是試圖關閉此線程,爲什麼不能互相幫助。我正在努力試圖瞭解這個主題是否可能在角度2中。如果不是,我不會遷移到角度2或使用它。 我在互聯網上傳遞了我的例子,對於我的案例沒有確切的答案。 – Brk