ちょっと私は角度2を初めて使っています。私は先週、角度2で試して、動的なテンプレートと動的なスタイルで動的コンポーネントを生成できるかどうか疑問に思いました。これは、角2でそれを行うことが可能であるfollwoingは私が(例えば、これは任意のヘルプが理解されるであろう角度1.動的なコンポーネントを角2で作成する
に多分可能であることをEscpeciallyのplunkersを覚えて、この
@Component({
// 2a
selector: 'dynamic placeholder',
// 2b
styles: [`dynamic styles`]
// 2c
template: `dynmic template`
})
のようにあるべきであることを意味します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あるシンプルコード)
とこれは私がこれまでに達成したものです(私は機能が2.4でリリースされていることを信じて活字体とAngular2の最新バージョンでは http://plnkr.co/edit/ZXsIWykqKZi5r75VMtw2?p=preview
StackOverflowは、あなたにコードを書くように人々に依頼する場所ではありません。私があなたが試みたことを見せて、確かな努力をしてください。 –
私は正しい方法でアップロードします。コードは動作しません。 – Brk
このスレッドを閉じるのではなく、お互いを助けてください。私は角度2でこのトピックが可能であるかどうかを理解しようとすることに頑強に努力しています。角度2に移行したり、使用したりしません。 私はインターネットで私の例を渡しましたが、私の場合は確かな答えはありません。 – Brk