2017-11-16 7 views
0

왼쪽 탐색 패널에는 항목 추가를위한 양식으로 연결되는 '항목 추가'링크가 있습니다.경로 또는 쿼리 매개 변수를 변경하지 않고 열려있는 동일한 URL로 이동할 때 구성 요소를 다시 각도 2 이상으로 초기화 할 수 있습니까?

{경로 : 'addItem를'구성 요소 : AddItemComponent, canActivate : [AuthGuard, 데이터 : {제목 : '항목 추가'}}

사용자 후 성공적으로

내 경로는 다음과 같습니다 항목을 저장하면 저장 버튼이 비활성화 된 상태에서 같은 페이지에 머물고 싶습니다. 그러나 사용자가 왼쪽 탐색 메뉴의 항목 추가 링크를 다시 클릭하면 구성 요소가 다시 초기화되기를 원합니다. 현재보기가 탐색 된 것이면 ngOnInit 메소드가 호출되지 않으므로 어떻게해야합니까? 조회 또는 라우트 매개 변수가 없으므로 조회 또는 라우트 매개 변수의 변경 사항을 등록 할 수 없습니다.

+0

ngmodel에서 데이터를 지우고 (사용하는 경우) 변수를 사용하여 버튼을 비활성화하면됩니까? – mast3rd3mon

+0

양식에 formbuilder 또는 formgroup을 사용하고 있습니까? –

답변

0

당신이 당신의 양식 formbuilder 사용하는 경우 HTML 사용에

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 

    } 
}