嵌套我在angular2以下formBuilder:angular2 formBuilder組導致PARAMS
constructor(
private formBuilder: FormBuilder) {
this.form = formBuilder.group({
id: [],
title: ['', Validators.required],
dates: formBuilder.group({
start_date: ['', Validators.required],
end_date: ['', Validators.required]
}, {validator: this.checkDates})
});
}
dates
是在一個單獨的基團,這是出於驗證的目的。的onSubmit調用此服務方法:
update(academicTerm: AcademicTerm): Observable<AcademicTerm> {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http
.patch(this.endpointUrl + academicTerm.id, JSON.stringify(academicTerm), {headers})
.map(this.extractData)
.catch(this.handleError);
}
當我檢查後端(Rails5 API服務器)我可以看到這個PARAM組:
參數:{ 「ID」=> 「3」,「標題「=>」術語標題「,」日期「=> {」start_date「=>」2016-11-27「,」end_date「=>」2016-12-01「},」academic_term「=> {」id「 => 「3」, 「標題」=> 「期限CL」}}
注意在academic_term
的哈希start_date
和end_date
不存在。
上的事情,我都強烈PARAMS設立這樣Rails的一面:
def academic_term_params
params.require(:academic_term).permit(:id, :title, :start_date, :end_date)
end
我已經嘗試設置在強PARAMS嵌套dates
對象:
def academic_term_params
params.require(:academic_term).permit(:id, :title, :dates => [:start_date, :end_date])
end
它沒有影響(日期不是一個關聯的屬性?)。所以雖然我可以更新標題,但我無法更新日期。
有沒有辦法拉平從角發出的PARAMS是這樣的:
參數:{ 「ID」=> 「3」, 「標題」=> 「期限標題」,「 start_date「=>」2016-11-27「,」end_date「=>」2016-12-01「}
或者有沒有辦法在Rails端修復它?
'academicTerm [ '起始日期'] = academicTerm [ '日期']起始日期;'和'academicTerm [ 'END_DATE'] = academicTerm [ '日期'] END_DATE;'確實起作用,由於 –