写这边文章,是想纠正一下《Angular JS高级程序设计》这本书中的一个错误,希望看此书学习的同学可以少受此苦,少走弯路。
在此书的第12章,288页,12.4.3节:延迟校验反馈 处,这节内容教给我们一个延迟显示验证错误信息的方法,就是点击提交后再显示错误信息,如何操作呢,书中源码如下:
.......
$scope.addUser=function(userDetails){
if(myForm.$valid){ //错误点在这里:myForm? 凭空哪里来的呢。编译就是通不过。后来一查,应该是$scope.myFom。 对啊,没错,前后通信都是用作用域$scope来衔接的啊。怎么会出现这样一个不着边际的变量,就是它的名字是表单的名字? 这是一个坑爹的错误。
$scope.message=userDetails.name+"("+userDetails.email+")("+userDetails.agreed +")";
}
else
{
$scope.showValidation=true;
}
}
对了,顺便提醒,若Form验证的话,还是用ngMessages吧,这个快捷省时多了。