0
私は別のコンポーネントをクリックして追加します。ユーザーはコンポーネントを追加して削除することもできますが、コンポーネントを削除することができます。角度4のクリックでコンポーネントリファレンスを取得します。私はその参照クリックして角をつけてコンポーネントを参照する
を知っている場合にのみ成分を除去する機能を知ってここ はapp.component.ts
@Component({
selector: 'question-paragraph',
template: `<div class="form-group container">
<textarea></textarea>
</div>`,
})
export class QuestionParagraphComponent { }
@Component({
selector: 'question-image',
template: `<div class="form-group container">
<form enctype="multipart/form-data" action="" method="post">
<p>Upload Image</p>
<input type="file" name="uploaded_file[]" />
</form>
</div>`,
})
export class QuestionImageComponent { }
にロードされているサンプルのコンポーネントであり、それは
if (item=='question') {
this.addService.appendComponentToBody(QuestionDetailComponent);
this.removeComponent(this.sg[this.sg['question_id']]);
} else if (item=='image') {
this.addService.appendComponentToBody(QuestionImageComponent);
this.removeComponent(this.sg[this.sg['question_id']]);
let componentRef = this.addService.appendComponentToBody(QuestionTypeComponent);
this.sg['ComRef'] = componentRef;
}
それらを追加する機能です
removeComponent(componentRef){
this.appRef.detachView(componentRef.hostView);
componentRef.destroy();
}
誰でも私に教えてください。 k、ありがとう。
なぜあなたは最初の場所でのページにコンポーネントを追加します。テンプレートはあなたのためにそれを行う必要があります。アイテムを繰り返し処理するにはngForを使用し、ngForの内部では、アイテムタイプが質問の場合は質問コンポーネントを表示し、アイテムタイプが画像の場合はイメージコンポーネントを表示します。コンポーネントを削除するには、配列から項目を削除するだけです。 ngForはあなたのために一致するコンポーネントを削除します。それが角度の基本原理です。 –
ngForは特定のテンプレートを繰り返し処理するので、ユーザは必要なコンポーネントを読み込むことができるので、そのコンポーネント参照を削除する必要があります。上の例では、40〜50個の異なるコンポーネントがあります。ユーザーが入力できるすべての入力を確認します。ありがとう –
コードの2つのifブロックは、2種類のコンポーネントをハードコードします。だから私はどのように "ユーザーが任意のコンポーネントをロードすることができます"見ていない。私はちょうどテンプレートで同じことをすることをお勧めします。 –