簡體   English   中英

是否可以從 Angular2 中的 FormControl 值訪問所選對象?

[英]Is it possible to access selected object from the FormControl value in Angular2?

我使用反應式表單進行驗證,因此當我想提交表單時,我使用的是 FormControl 實例中的值。 我的模板如下所示:

<select class="form-control" name="status" formControlName="status">
    <option *ngFor="let status of statuses" [ngValue]="status">
        {{status.description}}
    </option>
</select>

狀態對象如下所示: { id: 1, description: "desc" }

我想使用FormControl ( this.form.controls.status.value ) 的 value 屬性訪問整個狀態對象,但所選字符串存儲在值中而不是對象中。

當我訂閱 valueChanges 事件時,我可以訪問該對象。 似乎有點不合邏輯。 我認為當我訂閱值更改以及通過FormControl的屬性訪問最新值時,我應該獲得相同的值。 通過訂閱 value changes 事件將最新的對象存儲在我的組件中是沒有意義的,因為這會迫使我復制該值。 我想這就是表單控件的目的。 也許我做錯了什么!? 我怎樣才能讓它工作?

我的表單在開發中運行良好,但在生產中失敗了。 如果您使用提前編譯 (AOT),則 form.controls.controlName 將失敗。 您必須使用 form.get('controlName')。

不要使用 control.errors?.someError,使用 control.hasError('someError')

有關更多詳細信息,請參閱此鏈接:

https://github.com/qdouble/angular-webpack2-starter#aot--donts

您可以使用以下內容在 html 中查看表單的值:

form value: 
{{myForm.value | json}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM