2017-05-08 124 views
0

編輯的反應形式在我angular2應用程序我有一樣的反應形式:如何知道是否正在對angular2

<form [formGroup]="personForm" novalidate> 
     <input class="form-control" 
     [ngClass]="{'edited':personForm.value}" // this line* 
     formControlName="name"> 
     <label>Name</label> 
     //here i have more other inputs like this one 
    </form>  

這種形式在兩種情況下使用時,即時通訊創建一個新的人,當即時編輯一個存在的人。所以我想知道如何在編輯或創建新人時更改'編輯'屬性。 'personForm.value'永遠是真的,所以它的工作。

+0

類是怎樣的形式應該知道嗎?你需要用*表單來設置它。 – jonrsharpe

回答

0

personForm.value是一個JSON對象,其中包含所有字段和formGroup 形式的相應值可以不知道你是否已有人編輯或創建一個新的,你需要使用一個組件變量和檢查編輯你自己。 (例如,在您的路由參數中檢查id變量)

0

下面是一個可能的解決方案。

,在對應於表單

. 
. 
. 
export class MyForm ... { 
    isEditing = false; 

    onFocus() { 
    this.isEditing = true; 
    } 
    onBlur() { 
    this.isEditing = false; 
    } 
} 

然後修改您的模板,像這樣

<form [formGroup]="personForm" novalidate> 
    <input class="form-control" (focus)='onFocus()' (blur)='onBlur()' 
     [ngClass]="{'edited':isEditing}" // this line* 
     formControlName="name"> 
    <label>Name</label> 
     //here i have more other inputs like this one 
</form> 
相關問題