2017-08-06 3 views
2

私は2つの異なるカテゴリ(ラジオ入力)を持つフォームを持っており、それぞれに独自の入力があります。ここでは、 "編集"機能を追加する必要があります。ラジオ入力は常に最後に選択したカテゴリを参照するため、適切な編集フォームを表示する方法を見つけることができませんでした(手動切り替えが必要です。私は編集する必要があります)。これを解決するにはどうしたらよいですか?フォーム上の項目を編集するときに入力ラジオを動的に選択する方法は?

<form #formRef="ngForm" novalidate> 
    <div> 
    <label for="fruits"> 
     <input type="radio" name="fruits" 
     [(ngModel)]="toggleFormType" #toggleFormTypeRef="ngModel" checked 
     > 
     Fruits 
    </label> 
    <label for="vegetables"> 
     <input type="radio" name="vegetables" 
     [(ngModel)]="toggleFormType" #toggleFormTypeRef="ngModel" checked 
     > 
     Vegetables 
    </label> 
    </div> 

    <fieldset 
    ngModelGroup="fruits" *ngIf="toggleFormType === 'fruits'"> 
    // Inputs for fruits 
    </fieldset> 

    <fieldset 
    ngModelGroup="vegetables" *ngIf="toggleFormType === 'vegetables'"> 
    // Inputs for fruits 
    </fieldset> 
</form> 

その後、私はアイテムを表示するngForを持っている上:

これは、フォームを設定する方法である(私は角に新しいです)

<li *ngFor="let item of fruits; let i = index"> 
    {{item.fruit.name}} 
    <a href="#" (click)="editItem(item, i)"> 
</li> 

<li *ngFor="let item of vegetables; let i = index"> 
    {{item.vegetable.name}} 
    <a href="#" (click)="editItem(item, i)"> 
</li> 

私は私ができるeditItemを打ちますすべてがうまく動作することを確認してください(新しい内容であらかじめコンテンツ&を保存することができます)。唯一の欠点は、適切なcategoryを切り替える必要があることです。編集されたアイテムのカテゴリである適切なcategoryを表示する必要があります。私は何が欠けていますか?

+0

あなたは何を期待していますか?その1つのカテゴリはあらかじめ選択されていますか? – Myonara

答えて

0

私はそれを解決しました!私が必要としたのは、toggleFormTypeの状態を「設定」することでした。このようなもの

public editItem (event: Event, item: any, i: number) { 
    event.preventDefault(); 
    this.editModeIsOn = true; 
    this.index = i; 

    if (item.type === "fruit") { 
    this.fruit = item.fruit; 
    this.toggleFormType = item.type; 
    } else { 
    this.vegetable = item.vegetable; 
    this.toggleFormType = item.type; 
    } 
    this.setView("form"); 
} 
関連する問題