写点什么

AngularJS 1.3 改进了 HTML 表单

  • 2014-09-23
  • 本文字数:1373 字

    阅读完需:约 5 分钟

即将到来的 AngularJS 1.3 重点改进了表单数据操作。虽然该版本解决了一些实际问题,但对于部分开发人员来说,它可能不是一次能够自动完成的升级。

AngularJS 团队已经开始推出 1.3 的候选版本。在一份 Google+ 公告中,Angular 团队写道:

1.3 版本的大部分 API 都已经确定,接下来的版本,直到 1.3.0 稳定版,将修复现有的 Bug。

1.3 版本包含如下新特性:

  • 新的验证器管道
  • 自定义异步验证器
  • 模型数据绑定选项
  • ngMessages 错误信息模块重用
  • 支持一次性数据绑定

最新版本为开发人员提供了一种创建自定义验证器的新方法,它不需要使用“分析器(parser)”和“格式器(formatter)”。在 1.3 中,要创建一个自定义验证器,开发人员必须把它注册到新的 $validator 管道上,并返回 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。

Angular 团队在 1.3 版本中引入了破坏性更改,这引来部分开发人员的抱怨,他们认为这应该在主要版本(比如,2.0 版本)更新时出现。在 GitHub 上最近一次提交的评论中,Woot 软件开发经理 Chad Moran 警告说:

做破坏性更改,而又不生成一个主要版本,这很可能给用户带来巨大的麻烦。

1.3 中可能影响到企业开发人员的一项更改是不再支持 IE8。在 2013 年 12 月 Angular 团队在他们的博客上宣布这一消息以来,开发人员已经发出了大量的警告。之所以进行这项更改,部分是因为1.3 版本只支持jQuery 2.1 或更高版本,而jQuery 在2.x 版本中停止支持IE8。

在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-messages 模块将“解决一个错误在另一个错误之前出现这一情况的复杂性。”

尚不清楚 1.3.0 什么时候能达到稳定版本,但在 1.2 版本正式发布前,在三个月的时间里出现了三个候选版本。而目前为止,在三个周的时间里,已经有三个 1.3 候选版本。1.3 版本后是 2.0 版本,根据Angular 团队的一篇博文,那个版本的重点是使Angular 成为一个“适用于移动应用的框架”。

AngularJS 是一个由 Google 创建的 JavaScript 框架。

查看英文原文:**** AngularJS 1.3 Improves HTML Forms

2014-09-23 10:093441
用户头像

发布了 256 篇内容, 共 85.1 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

设备树

贾献华

8月月更

从 VLAN 到 IPVLAN: 聊聊虚拟网络设备及其在云原生中的应用

阿里巴巴云原生

Linux 阿里云 云原生 容器服务 IPVLAN

阿里巴巴2022全新出品亿级并发设计速成宝典(系统拆分,缓存,MQ,读写分离,分布分表,ES扩容应有尽有)

程序员小毕

Java 程序员 面试 后端 高并发

兆骑科创双创服务平台,创新创业高层次人才引进,投融资对接

兆骑科创凤阁

Spring(二、配置文件)

开源 bean Spring JPA 8月月更

阿里大神级 最新Elasticsearch 笔记,抓紧学起来!

冉然学Java

elasticsearch 编程 分布式 java; 程序员、

从没见过能把高并发拆解的这么详细!阿里巴巴这份堪称神级的“高并发”教程太香了

Java永远的神

Java 程序员 架构 面试 高并发

Web网页端IM产品RainbowChat-Web的v4.1版已发布

JackJiang

html5 前端 websocket 即时通讯 IM

基于 OPLG 从 0 到 1 构建统一可观测平台实践

阿里巴巴云原生

阿里云 分布式 云原生 可观测 全链路

阿里SpringCloudAlibaba实战小抄(第五版)GitHub独家首发开源

冉然学Java

GitHub 开源 springcloudAlibaba spring-boot

Kubernetes 污点和容忍

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes 虚拟机部署弊端

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes 集群 Ingress 网关

CTO技术共享

开源 签约计划第三季 8月月更

兆骑科创创新创业大赛承办,线上直播路演,企业孵化

兆骑科创凤阁

迄今为止见过最详细的零拷贝技术讲解

C++后台开发

后端开发 零拷贝 Linux服务器开发 C/C++后台开发 C/C++开发

阿里架构师力推jvm架构解析文档,把JVM调优实战讲的明明白白

Java工程师

Java JVM GC

Kubernetes微服务、容器介绍

CTO技术共享

开源 签约计划第三季 8月月更

IPv6地址规划

穿过生命散发芬芳

ipv6 8月月更

MySQL存储引擎

武师叔

8月月更

开源一夏 | 自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了

叶秋学长

开源 8月月更 Hiflow

一个可以提前结项的敏捷项目

Bruce Talk

敏捷 Agile 敏捷项目

Kubernetes日常故障解决

CTO技术共享

开源 签约计划第三季 8月月更

阿里内部高并发核心编程笔记:多线程、锁、JMM、JUC、设计模式

冉然学Java

JMM 设计模式 java; 多线程高并发

1500字简述 Apache ZooKeeper 的基本原理

wljslmz

Apache zookeeper 分布式 8月月更

STM32的启动过程 — startup_xxxx.s文件解析(MDK和GCC双环境)

矜辰所致

stm32 arm 8月月更 stm32启动流程 startup_xxxx.s

Istio的扩展和定制

阿泽🧸

istio 8月月更

4K详解Linux内核——环境搭建

了不起的程序猿

数据库 程序员 系统 linux security

JOIN查询时,我为什么建议你将小表放在前面?(NLJ,SNL,BNL算法全面解析)

董哥的黑板报

MySQL 数据库 后端 服务端 db

今天面了个腾讯拿38K出来的大佬,让我见识到了Java面试八股文的天花板

Java全栈架构师

Java 数据库 spring 程序员 面试

深入浅出边缘云 | 5. 运行时控制

俞凡

架构 边缘计算 网络 深入浅出边缘云

STM32+果云GA6-GPRSGSM模块+MQTT+HTTP协议连接中移OneNet上传GPS数据定位

DS小龙哥

8月月更

AngularJS 1.3改进了HTML表单_JavaScript_David Iffland_InfoQ精选文章