我從Grails背景來到Angular,您將在一個地方定義您的業務規則驗證與域模型。 GORM ....所以當我通過Ionic來到Angular時,我很驚訝沒有看到熟悉的東西。我在這裏錯過了什麼嗎?有沒有更好的辦法?爲什麼在組件/表單中的角度驗證不在域模型上執行一次?
回答
您可以在任何情況下實施驗證。只需在角度表單和您的域名之間添加1個圖層即可。 一般來說,Angular不會規定應用程序應該以何種方式工作。它只是爲您提供與瀏覽器和API交互的工具。
您始終可以實施Domain#valid()
方法並通過Reactive Forms更新字段。
@Component({})
export class MyComponent implements OnInit{
public form: Form = this.fb.group({
fName: ['', []],
lName: ['', []]
});
constructor(fb: FormBuilder){}
ngOnInit(){
this.form.valueChanges.subscribe((form) => {
let entity: Entity = new Entity(form);
let errors: ValidationErrors = entity.valid();
if(errors.length){
this.form.setErrors(errors);
this.form.updateValueAndValidity();
}
});
}
}
Entity/EntityError - 這些是什麼?我從這裏理解updateValueAndValidity https://angular.io/api/forms/AbstractControl – JGFMK
這只是僞代碼。實體 - 你自己的類,它可以是'class UserEntity implements IEntity {}',其中interface IEntity {valid():EntityError []; }'。 'EntityError'再次只是抽象/接口,可以提供給Angular的形式'setErrors()'方法。糟糕,更新了代碼示例,因爲我在那裏有錯字。 –
非常感謝。對於其他人.. https://angular.io/api/forms/AbstractControl#setErrors ... https://angular.io/api/forms/ValidationErrors - – JGFMK
- 1. 爲什麼在子類型表單上的驗證會中斷?
- 2. 爲什麼指令模板中的角度表達式執行兩次?
- 3. 角度表單驗證
- 4. 驗證2角度表單域不具有相同的內容
- 5. 如何檢查ts組件文件角度2中的模板表單驗證?
- 6. 角度表單驗證不與組件配合使用
- 7. 表單驗證器執行兩次
- 8. jQuery表單驗證:爲什麼要驗證兩次?
- 9. 角JS驗證不執行
- 10. 爲什麼角度表單驗證應用不正確的CSS樣式?
- 11. 角度2中的表單驗證
- 12. ngRepeat中的角度表單驗證
- 13. IE中的角度表單驗證
- 14. 角度表單驗證不起作用
- 15. 角度表單驗證不起作用
- 16. 角度表單驗證問題 - 角度驗證沒有發生
- 17. 如何在沒有表單的模型上運行ZF2驗證?
- 18. 如何驗證角度指令中的動態表單域?
- 19. 爲什麼不在PHP上傳表單域中指定「允許」文件類型?
- 20. 在四步註冊頁面中進行角度表單驗證
- 21. 角度表單驗證 - 表單形式
- 22. 爲什麼「onclick ='submit()'」不驗證表單?
- 23. 錶行中的角度2驗證
- 24. 在角度飛鏢中驗證表單輸入值的長度
- 25. 在Ruby on Rails模型中,爲什麼存在已驗證關聯但在外鍵上驗證了唯一性
- 26. JSON模式驗證 - 爲什麼不需要強制執行?
- 27. 爲什麼不是第一次驗證第二個驗證?
- 28. 爲什麼我的NgMessages表單驗證行爲不正確?
- 29. 使用組件的角度2表單級別驗證
- 30. 型表單驗證是不工作...我不知道爲什麼
Isnt Grails是一個Java Web框架嗎?我看不到Java世界和Javascript世界之間的任何關係 - 或者我錯過了一些東西 –
嗯,這是驗證的分散化,使得我試圖強調重複的努力。你也可以讓組件1和組件2有不同的規則,例如1有a,b,c,2有a,b,d。導致一團糟。是的,Grails是一個完整的堆棧框架,包含Java/Spring/Hibernate。 – JGFMK