2017-11-16 1 views
0

私は項目を追加するためのフォームに私を連れて行く '項目の追加'リンクを持っている左側のナビゲーションペインを持っています。ルートまたはクエリパラメータを変更せずに開いている同じURLに移動すると、コンポーネントを角2+で再初期化するにはどうすればよいですか?

{パス: 'AddItemメソッド'、成分:AddItemComponent、canActivate:[AuthGuard]、データ:{タイトル: '項目の追加'}}

ユーザ後正常

マイ経路は、このようになりますアイテムを保存すると、保存ボタンを無効にして同じページに留まりたいと思います。しかし、ユーザーが再び左のナビゲーションでAdd Itemリンクをクリックすると、コンポーネントを再初期化します。現在のビューがナビゲートされたビューである場合、ngOnInitメソッドが呼び出されないので、これをどうやって行うのですか?クエリパラメータやルートパラメータがないため、クエリやルートパラメータの変更を購読することはできません。

+0

ngmodel内のデータを消去して(変数を使用していると仮定して)、変数を使用してボタンを無効にするだけですか? – mast3rd3mon

+0

フォームにformbuilderまたはformgroupを使用していますか? –

答えて

0

あなたは、自分のフォームのためのあなたのhtmlの使用では

をformbuilderを使用している場合はdisabledあなたのコンポーネントで

<form [formGroup]="offerForm" (ngSubmit)="addMyOffer(offerForm.value)"> 
    <input type="text" formControlName="myOffer"> 
    <button type="submit" [disabled]="!offerForm.valid"> 
    <span>Add</span> 
    </button>   
</form> 

ボタンを無効にする属性は、データを保存した後、新しいオファーを追加するためのフォームをリセット

import { FormBuilder, FormGroup, Validators,FormControl } from '@angular/forms'; 

export class formComponent{ 
    private offerForm:FormGroup; 

    constructor(private formBuilder: FormBuilder){ 
    this.offerForm = this.formBuilder.group({ 
     'myOffer' :['',Validators.required], 
    }); 
    } 


    private addMyOffer(obj:any){ 

    //code for saving data  
    this.offerForm.reset(); // resets the form to add new offer 

    } 
} 
関連する問題