AngularJS 1.3 提升了 HTML 表单 已翻译 100%

oschina 投递于 2014/09/22 11:54 (共 5 段, 翻译完成于 09-23)
阅读 4440
收藏 47
2
加载中

即将到来的 AngularJS 1.3 版本会放出对提升表单数据操作的重点关注. 而这次的版本解决了一些真正的痛点,对于一些开发者而言,这次的版本可能不是一次自动升级(言下之意就是需要开发者自己做一些额外的事情).

 AngularJS 团队推出1.3版的候选版本。在一份 Google+ 贴子 上 Angular 团队写到:

1.3版的大多数API已经做出了裁定,而接下来版本一直到1.3.0稳定版将会修复遗留的bug.

 1.3 的一些特性如下:

  • 新的验证器管道

  • 异步的自定义验证器

  • 模型数据绑定选项

  • 用于错误消息重用的 ngMessages 模块

  • 对一次性数据绑定的支持

LeoXu
翻译于 2014/09/23 08:15
2

最新版为开发者提供了创建自定义验证器的新方法, 去除了对使用转换和格式化装置的需求. 为了在1.3中创建一个自定义的验证器,开发者必须在新的$validators管道上注册这个验证器并返回true或者false:

ngModule.directive('validateLessthanfive', function() {

  return {
    require : 'ngModel',
    link : function($scope, element, attrs, ngModel) {
      ngModel.$validators.lessthanFive = function(value) {
        return (value < 5);
      }; 
    }
  }
});

Matias Niemela是一名Angular贡献者,他写了一篇文章 概述了新的表单特性 包括为提供基于服务器的验证创建异步验证器的新功能. Matias 同时也指出了对HTML5验证器的提升:

现在所有的 HTML5 验证属性都被绑定到ngModel,它们的错误消息都注册到了 ngModel.$error

LeoXu
翻译于 2014/09/23 08:25
1

Angular 团队在版本1.3中引入了重大的修改,一些开发者抱怨这次重大修改应该要带来一次主版本的更新(比如. 版本 2.0). 在最近的一次 GitHub 评论上 Chad Moran(Woot的软件开发经理)警告道:

做出重点修改却不提升主版本号,很有可能给用户带来很多的痛苦.

潜在的会影响到企业开发者的变化就是1.3版不再支持IE8. 自从 Angular 团队在它们 2013年12月的博客上 公布了这个事情,开发者已经发出了大量的警告. 这个修改的背后的部分原因是 1.3 只支持 jQuery 2.1 或者以上版本,而jQuery在版本2.x去掉了对IE8的支持.

LeoXu
翻译于 2014/09/23 08:37
1

在Angular的早期版本中,显示表单验证错误消息就是结合 ng-if 指令和许多布尔逻辑来在对的时间展示恰当的错误消息,这样的操作. 版本1.3引入了 ngMessages 模块,作为一种处理复杂验证错误消息的升级方式. 下面是来自 yearofmoo.com 博客文章 的有关这个新语法的示例:

<form name="myForm">
  <input type="text" name="colorCode" ng-model="data.colorCode" minlength="6" required />
  <div ng-messages="myForm.colorCode.$error" ng-if="myForm.$submitted || myForm.colorCode.$touched">
        <div ng-message="required">...</div>
        <div ng-message="minlength">...</div>
        <div ng-message="pattern">...</div>
  </div>
</form>

据Niemela所述, 不仅在于减少了代码的行数,新的ng-message模块将”解决一条错误消息在另外一条错误消息之前显示的复杂性"。

LeoXu
翻译于 2014/09/23 08:53
1

目前还不清楚1.3.0何时会达成一个稳定版本,而对版本1.2而言,有三个候选版本扩散了超过三个月的时间. 目前已经有三个针对1.3的候选版本扩散了三个星期. 版本 1.3 之上就是 2.0, 根据Angular团队的一片帖子,这一版本将会专注于让Angular成为一个"用于移动应用的框架".

AngularJS 是由谷歌赞助的一个JavaScript框架。

LeoXu
翻译于 2014/09/23 09:00
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(3)

开源中国匿名会员
开源中国匿名会员
找了一圈没找到顺手的表格控件。
相比较,在ngTable, ngGrid,SmartTable反正一大堆里面找到个 trNgGrid感觉不错。
官方早点出吧。
捏造的信仰
捏造的信仰
“自动升级”应是“无缝升级”才对
hantsy
hantsy
这是纯翻译的吗?
1. 对 Jquery 的支持,AngularJS一直内置了一个 JQlite。
2. 最后一句,不知道作者了解 AngularJS 的历史吗?AngularJS 最初是由 Google赞助的项目,并非由 Google 开发的。
返回顶部
顶部