我們接著上篇,先把小目標中的所有欄位都定義出來
這部分就是苦力活兒了,把kendouicomponent中的formmodel完善即可:
1 formmodel: dynamicformcontrolmodel = [formmodel2new dynamicinputmodel(),
7new dynamicradiogroupmodel(,
15
19 ]
20 }),
21new dynamicinputmodel(),
31new dynamicdatepickermodel(),
37new dynamictimepickermodel(),
42new dynamicinputmodel(),
48new dynamicinputmodel(),
54new dynamicselectmodel(,
62 ,
66 ,
70 ]
71 }),
72new dynamiccheckboxgroupmodel(),
80new dynamiccheckboxmodel(),
84new dynamiccheckboxmodel(),
88 ]
89 }),
90new dynamictextareamodel(),
95new dynamicfileuploadmodel(),
103new dynamicfileuploadmodel(
104
113 )
114 ];
驗證分兩類,一類是系統內建的驗證,比如非空驗證、最大長度、最大值、正規表示式之類的,另外一類是自定義的驗證邏輯,下面我們分別來看看怎麼用吧~
這個用起來比較簡單,直接在模型上加上validators屬性和errormessages屬性即可,如下**:
new其中validators中定義了你需要做哪些驗證,以及這些驗證方法需要傳遞的引數是什麼。errormessages中定義了當錯誤發生時的錯誤訊息。最終效果如下:dynamicinputmodel(,
errormessages: }不能為空',
maxlength: '}不能超過15個字元'}
})
有時候,系統驗證不完全能滿足我們的需求,此時需要自己定義一些驗證的方法。比如,我們需要在使用者註冊時,檢查使用者兩次輸入的密碼是否一致。
在使用時,首先我們需要定義乙個驗證的方法,**如下,該方法中,會將password和password-confirm從表單中取出,並獲得value,如果他們兩個的value不一致,則返回物件:
import from '@angular/forms';export
function custommatchpasswordvalidator(group: formgroup): validationerrors | null
: null
;}
import from './kendo-ui/password-validation';
providers: [,]由於是要同時獲取兩個控制項的值,所以需要將兩個密碼框的模型放到乙個dynamicformgroupmodel中,並且我們的驗證也需要加到dynamicformgroupmodel中,**如下:
new這樣,我們就可以完成密碼的校驗了,效果如下:dynamicformgroupmodel(),
newdynamicinputmodel()
],validators: ,
errormessages:
})
截止這裡,小目標中的其他元件也都類似,這裡就不一一例舉了
Angular 動態表單 根據選擇聯動顯示
記錄一下剛剛完成的乙個功能 需求是根據固定的層級結構做動態聯動,在網上找了很多動態表單的相關教程,大部分都是在最開始載入就生成表單.而我的需求是需要在選擇了父級之後再展示父級下的選項 參考了大佬的修仙之路 和 動態生成表單 感謝 準備階段 配置好已知的層級結構 const itemconfig 頁面...
Angular表單驗證
對前端開發人員來說,表單是非常重要的,它負責使用者與程式的互動。它承載著一部分資料校驗的功能,以此減少服務端的壓力。本文就angular表單驗證的兩種方式進行闡述,如有問題,歡迎指正。文章目錄 模板驅動驗證 響應式表單的驗證 自定義驗證器 為了向模板驅動表單中新增驗證,需要新增一些驗證屬性,這裡就使...
Angular 表單簡介
angular 中有兩種表單 元件類指令 formsmodule 元件類指令 reactiveformsmodule validity visited html form template driven formreactive form接下來我們主要來介紹一下 reactive form 的一些相...