Angular動態表單生成(四)

2022-02-08 21:04:44 字數 2122 閱讀 4932

我們接著上篇,先把小目標中的所有欄位都定義出來

這部分就是苦力活兒了,把kendouicomponent中的formmodel完善即可:

1   formmodel: dynamicformcontrolmodel = [

2new 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 ];

formmodel

驗證分兩類,一類是系統內建的驗證,比如非空驗證、最大長度、最大值、正規表示式之類的,另外一類是自定義的驗證邏輯,下面我們分別來看看怎麼用吧~

這個用起來比較簡單,直接在模型上加上validators屬性和errormessages屬性即可,如下**:

new

dynamicinputmodel(,

errormessages: }不能為空',

maxlength: '}不能超過15個字元'}

})

其中validators中定義了你需要做哪些驗證,以及這些驗證方法需要傳遞的引數是什麼。errormessages中定義了當錯誤發生時的錯誤訊息。最終效果如下:

有時候,系統驗證不完全能滿足我們的需求,此時需要自己定義一些驗證的方法。比如,我們需要在使用者註冊時,檢查使用者兩次輸入的密碼是否一致。

在使用時,首先我們需要定義乙個驗證的方法,**如下,該方法中,會將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 的一些相...