即将到来的 angularjs 1.3 版本会放出对提升表单数据操作的重点关注. 而这次的版本解决了一些真正的痛点,对于一些开发者而言,这次的版本可能不是一次自动升级(言下之意就是需要开发者自己做一些额外的事情).
angularjs 团队推出1.3版的候选版本。在一份 google+ 贴子 上 angular 团队写到:
1.3版的大多数api已经做出了裁定,而接下来版本一直到1.3.0稳定版将会修复遗留的bug.
1.3 的一些特性如下:
新的验证器管道
异步的自定义验证器
模型数据绑定选项
用于错误消息重用的 ngmessages 模块
对一次性数据绑定的支持
最新版为开发者提供了创建自定义验证器的新方法, 去除了对使用转换和格式化装置的需求. 为了在1.3中创建一个自定义的验证器,开发者必须在新的$validators管道上注册这个验证器并返回true或者false:
matias niemela是一名angular贡献者,他写了一篇文章 概述了新的表单特性 包括为提供基于服务器的验证创建异步验证器的新功能. matias 同时也指出了对html5验证器的提升:
现在所有的 html5 验证属性都被绑定到ngmodel,它们的错误消息都注册到了 ngmodel.$error
angular 团队在版本1.3中引入了重大的修改,一些开发者抱怨这次重大修改应该要带来一次主版本的更新(比如. 版本 2.0). 在最近的一次 github 评论上 chad moran(woot的软件开发经理)警告道:
做出重点修改却不提升主版本号,很有可能给用户带来很多的痛苦.
潜在的会影响到企业开发者的变化就是1.3版不再支持ie8. 自从 angular 团队在它们 2013年12月的博客上 公布了这个事情,开发者已经发出了大量的警告. 这个修改的背后的部分原因是 1.3 只支持 jquery 2.1 或者以上版本,而jquery在版本2.x去掉了对ie8的支持.
在angular的早期版本中,显示表单验证错误消息就是结合 ng-if 指令和许多布尔逻辑来在对的时间展示恰当的错误消息,这样的操作. 版本1.3引入了 ngmessages 模块,作为一种处理复杂验证错误消息的升级方式. 下面是来自 yearofmoo.com 博客文章 的有关这个新语法的示例:
据niemela所述, 不仅在于减少了代码的行数,新的ng-message模块将”解决一条错误消息在另外一条错误消息之前显示的复杂性"。