[英]Angularjs and displaying server validation message + Form builders
我在服務器端使用Express + sequelizejs。
假設我們有以下視圖:(在新的編輯視圖中,它作為<div ng-include src="'views/users/_form.html'"></div>
包含在內。)
<div class="form-group">
<label for="userLastName">Last Name</label>
<input type="text" class="form-control" id="userLastName" name="lastName" placeholder="Last name" ng-model="$parent.user.lastName">
<!-- how to display a server validation message here? -->
</div>
以及以下負責創建用戶的控制器代碼。
User.create($scope.user).$promise
.then(function () {
$location.path('/users')
$scope.users = rePlanApi.User.query()
})
.catch(function (err) {
_.forEach(err.data, function (errors, key) {
if (key !== '__raw' && _.isArray(errors)) {
_.forEach(errors, function (e) {
$scope.user[key].$dirty = true
$scope.user[key].$setValidity(e, false)
})
}
})
})
服務器將針對驗證錯誤返回422,並且示例響應可能為:
{"lastName":["Lastname does not fullfill a certain requirement", "Something else"]}
我知道我可以使用Angular進行某些驗證,但是有些事情只有服務器可以驗證,例如電子郵件的唯一性等。
由於Angular中沒有models
,因此$parent.user.lastName
的用戶只是一個愚蠢的Javascript對象。
如何獲取驗證消息以附加到$parent.user.lastName
並將其顯示在前端?
上面的代碼有一些問題:
最終,我想像plataformatec/simple_form
提供的助手一樣使代碼干燥
Angular中有這樣的圖書館嗎? 還是我必須使用Angular指令來滾動自己的目錄?
謝謝
有點為我們的.Net應用程序做類似的事情。 https://github.com/Envoc/envoc.directives/tree/master/src/validation
請參閱該倉庫的示例文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.