2016-11-30 392 views
0

參考在角2種模板驅動的形式,我可以寫角2 - 獲取到formGroup

<form #form="ngForm"> 
[...] 
</form> 

ngForm是FormGroup,如車費,我可以理解。我如何在相應的組件中獲取該對象?

class FormComponent { 
    formGroup: FormGroup; // How do I have the form INJECTED AUTOMATICALLY by the framework? Something like a ViewChild, but it's not a view 
} 

它必須很簡單,但文檔只顯示如何使用模板中的表單。

感謝

編輯:什麼我要搶的類型是NgForm,不FormGroup!

回答

2

您可以使用ViewChild修飾器從組件訪問任何模板變量。在你的情況下:

class FormComponent { 
    @ViewChild('form') formGroup; 
    ngOnInit() { 
     this.formGroup.statusChanges().subscribe(() => { 
      // Your code here! 
     }); 
     console.log(this.formGroup); // Inspect the object for other available property and methods. 
    } 
} 
+0

我曾試圖做像你說的,但也使用閱讀:ViewContainerRef。那是錯誤的。忽略讀取選項會產生一個NgForm,這是我想要的對象的實際類型,而不是我認爲的FormGroup。 我通過看這個答案瞭解了這一點:http://stackoverflow.com/questions/36583078/how-to-get-reference-to-angular-built-controlgroup-from-within-a-component?rq=1 – Etchelon