0
我有一個註冊用戶註冊到我的系統的以下SignUp控制器。我遇到了form.$valid
屬性的問題,當Sequelize的驗證錯誤被拋出時,該屬性被凍結爲false ...我應該在控制器中添加/更改哪些內容?我認爲,它應該刪除錯誤的$有效的價值ng-change事件的具體輸入可能?但我不知道,如何實現這一目標?如何在AngularJS中引發Sequelize驗證錯誤時重新發送表單?
class SignupController {
//start-non-standard
user = {};
errors = {};
submitted = false;
//end-non-standard
constructor(Auth, $state) {
this.Auth = Auth;
this.$state = $state;
}
register(form) {
this.submitted = true;
console.log(this.errors);
if (form.$valid) {
console.log("clikc");
this.Auth.createUser({
nickname: this.user.nickname,
email: this.user.email,
password: this.user.password
})
.then(() => {
// Account created, redirect to home
this.$state.go('main');
})
.catch(err => {
err = err.data;
this.errors = {};
// Update validity of form fields that match the sequelize errors
if (err.name) {
angular.forEach(err.fields, function(value, key) {
form[key].$setValidity('sequelize', false);
this.errors[key] = err.message;
}, this);
}
});
}
}
}
angular.module('batnApp')
.controller('SignupController', SignupController);