5. AngularJS
User Group Taiwan
• 需要先安裝 node.js & npm
• npm install -g angular-cli typescript
• ng new porjectName
• cd projectName
• ng serve
快速建立 Project 三步驟
14. AngularJS
User Group Taiwan
FormControl
name: street
FormControl
name: city
FormControl
name: state
FormControl
name: zip
Form Group
• value
• valid / invalid
• pristine / dirty
• touched /
untouched
• errors
• get('street')
• hasError ()
• ...
來源: Kara Erickson
15. AngularJS
User Group Taiwan
• 提供追蹤表單及欄位狀態
• 依照狀態提供的 CSS classes 可快速套用樣式
NgModel 驗證功能
State Class if true Class if false
Control 被點擊接觸過 ng-touched ng-untouched
Control 的值被改變 ng-dirty ng-pristine
Control 的值不符合驗證 ng-valid ng-invalid
18. AngularJS
User Group Taiwan
• Import Module:ReactiveFormsModule
• 由 Directives 綁定存在的控制項
• 適合處理複雜的邏輯、動態的表單內容
• 表單驗證邏輯可進行單元測試(Unit Test)
Model Driven Forms
23. AngularJS
User Group Taiwan
• Angular 2 Forms
• Angular 2 Dynamic Forms
• Introduction to Angular 2 Forms - Template Driven vs Model
Driven or Reactive Forms
• Webinar: latest Angular 2 Forms
• Angular 2 Forms Course Sample
Reference
Angular 會到 Template 尋找有 ngModel 的 form control 建立實體
每個 form control 的實體都會有以下的 model
ngModel 用來建立一個 FormControl 的實體,並將它綁定到一個表單控制項元素
從域模型創建一個FormControl實例,並將其綁定到一個表單控件元素。
FormControl 實體會追蹤 value、 user 互動、及控制項的驗證狀態,並且保持 model 與 View 同步。
如果用父層級的表單建立,directive 也會作為子控制項的表單自行註冊