我從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. jQuery表單驗證:爲什麼要驗證兩次?
- 4. 角度2中的表單驗證
- 5. ngRepeat中的角度表單驗證
- 6. 角度表單驗證不起作用
- 7. 如何在沒有表單的模型上運行ZF2驗證?
- 8. 角度表單驗證問題 - 角度驗證沒有發生
- 9. 如何驗證角度指令中的動態表單域?
- 10. 爲什麼不是第一次驗證第二個驗證?
- 11. 爲什麼我的NgMessages表單驗證行爲不正確?
- 12. 角2表單元素作爲組件 - 驗證不工作
- 13. 域模型驗證?
- 14. Yii表單上的角度表單驗證
- 15. 如何在模型中執行條件驗證
- 16. 角4文件上傳表單驗證
- 17. 如何在模型對象上執行復雜的驗證?
- 18. 怎麼做表單驗證 - 在角度JS
- 19. 在不使用HTML表單標記的情況下執行角度表單驗證
- 20. 角度,在驗證模型中傳遞參數
- 21. 角度無效表單的條件表單驗證
- 22. curl_exec($ ch)不再在外部域上執行,爲什麼?
- 23. 深度嵌套網頁表單驗證的模式是什麼?
- 24. 爲什麼jQuery在發送表單後驗證運行?
- 25. 爲什麼jQuery表單驗證插件不能在我的頁面中工作?
- 26. 表單驗證 - 在角度JS不工作
- 27. Powershell字符串長度驗證 - 腳本不驗證輸入,但在每次執行時創建一個文件
- 28. 爲什麼驗證對錶單名稱而不是模型有效?
- 29. 角度的表情驗證
- 30. 在運行時不會評估角度表達式。爲什麼?
Isnt Grails是一個Java Web框架嗎?我看不到Java世界和Javascript世界之間的任何關係 - 或者我錯過了一些東西 –
嗯,這是驗證的分散化,使得我試圖強調重複的努力。你也可以讓組件1和組件2有不同的規則,例如1有a,b,c,2有a,b,d。導致一團糟。是的,Grails是一個完整的堆棧框架,包含Java/Spring/Hibernate。 – JGFMK