第一次真正在项目中使用AngularJS竟然就遇到问题了,感觉很挫败啊,不过没关系,通过自己的努力最终还是找到了问题的症结,也很开心呢,嘻嘻!
今天要做的一个功能就是通过AngularJS做表单验证,论说只要通过ng-show加一些判断就可以搞定的事,但是我却被它折磨了将近一个小时,成功的案例是什么呢,下面这段代码就可以通过ng-show实现验证必填项目:
<form ng-app="myApp" ng-controller="validateCtrl"
name="myForm" novalidate>
<p>邮箱:<br>
<input type="email" name="email" ng-model="email" required>
<span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid">
<span ng-show="myForm.email.$error.required">邮箱是必须的。</span>
<span ng-show="myForm.email.$error.email">非法的邮箱地址。</span>
</span>
</p>
</form>
是的,可以通过验证!!!
我到底做错了什么呢,会被折磨的这么惨呢,大家看我的代码:
<form ng-app="myApp" ng-controller="validateCtrl"
name="my-Form" novalidate>
<p>邮箱:<br>
<input type="email" name="email" ng-model="email" required>
<span style="color:red" ng-show="my-Form.email.$dirty && my-Form.email.$invalid">
<span ng-show="my-Form.email.$error.required">邮箱是必须的。</span>
<span ng-show="my-Form.email.$error.email">非法的邮箱地址。</span>
</span>
</p>
</form>
看到了吗?是不是很难发现,即使发现了你也不会觉得这是个问题吧,天啦噜formName和fieldName在ng-show指令中都不可以包含短横线(-),真的,发现了这个问题后,想死的心都有了。不过学习的路还很长,各种坑肯定也很多,正好也锻炼一下我的心智,加油吧少年。
因为觉得后面还会碰到一下离奇的问题,所以先开一篇文章,后面如果遇到陆续更新!!