哪里最好处理错误处理和错误显示? E.g。
我有一个控制器:
angular.module('app')
.controller('MyController', function ($scope) {
$scope.form = {
username: ''
};
$scope.login = function () {
doSomething($scope.form.username);
};
});
与控制器绑定的视图:
<div ng-controller="MyController">
<input ng-model="username.form" />
<button ng-click="login()">Submit</button>
</div>
如果$scope.form.username
为空,则表示错误;哪个最好处理这个?在控制器中,例如:
if ($scope.form.username == '') {
// do something here
}
或者只是将值传递给doSomething(...)
并让该函数处理空值?
其次,更新元素的最佳方法是什么(例如,突出显示输入红色或显示下面的小消息)以指示发生了错误?
答案 0 :(得分:1)
您应该阅读有关角度表格验证的文章(http://www.ng-newsletter.com/posts/validations.html)。它提供了设置良好表单验证所需的一切。
在此之后,您可以对“提交”进行检查,以防止在出现验证错误时提交表单:
$scope.signupForm = function() {
if ($scope.signup_form.$valid) {
// Submit as normal
} else {
//no submit, notify the user
}
...}
对于错误消息,当它们在视图中呈现时,您可以直接在指令中管理它们,如:
<input type="text" placeholder="Name" name="name" ng-model="signup.name" ng-minlength=3 ng-maxlength=20 required />
<div class="error-container" ng-show="signup_form.name.$dirty && signup_form.name.$invalid && signup_form.submitted">
<small class="error" ng-show="signup_form.name.$error.required">
Your name is required.
</small>