angular 中ng-class,当$invalid变化时,类名没有变化

发布于 2022-08-29 18:29:23 字数 696 浏览 15 评论 0

在做表单验证的时候,需要一个功能,就是表单验证未成功的时候,保存按钮需要有一个类名disabled,所以很自然的想到ng-class={disabled:myForm.$invalid}这样去绑定类名,
但是渲染视图的时候,通过chrome的angular插件,已经看到$invalid的值为false,可是disabled类名还是存在...

想来是因为input等元素的value值一开始都是空的,所以$invalid是true,添加了disabled类名,但是当视图渲染完毕,input的value值都被替换成模型数据后,ng-class并没有检测到他的变化... 请问这种情况怎么处理,谢谢~~~

(通过$invalid来拼接class可以成功,但就是想知道怎么用ng-class来实现)

原代码是这样的:

<a class="edit" ng-click="save(myForm.$invalid)" ng-class="{disabled:myForm.$invalid}">保存</a>

渲染后得到的结果是这样的:

<a class="edit disabled" ng-click="save(myForm.$invalid)" ng-class="{disabled:myForm.$invalid}" href="">保存</a>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

私野 2022-09-05 18:29:23

你给 button 一个 class,这样的话就算 button 看起来是 disabled,但实际上还是能用的啊!你还得写额外的逻辑来禁用这个 button,你不觉得很啰嗦么?

按照 HTML 规范,更合理的做法是使用 ng-disabled,像 Bootstrap 这样的框架会直接捕捉 buttondisabled 状态并给予对应的样式,这才是更合理的做法。

你看一下这个例子好了:http://codepen.io/nightire/pen/pCikg

清眉祭 2022-09-05 18:29:23

关于AngularJS的表单验证,可以参考下:http://www.ngnice.com/showcase/#/form/basic
如果不想使用原生的方式编写错误信息提示模板,参考我写的w5cVlidator插件:http://www.ngnice.com/posts/236860ed32d3e8

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文