AngularJS 1.3 提升了 HTML 表单

简介:

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

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

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

1.3 的一些特性如下:

新的验证器管道

异步的自定义验证器

模型数据绑定选项

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

对一次性数据绑定的支持

最新版为开发者提供了创建自定义验证器的新方法, 去除了对使用转换和格式化装置的需求. 为了在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

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 博客文章 的有关这个新语法的示例:

<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模块将”解决一条错误消息在另外一条错误消息之前显示的复杂性"。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
定位技术
时尚的联系我们表单HTML模板(源码)
一款时尚的联系我们表单Html模板,带地图和所在位置,输入基本信息和信息发送,看起来很漂亮的联系我们页面。
351 1
时尚的联系我们表单HTML模板(源码)
|
移动开发 HTML5
HTML5 表单属性3
`&lt;input&gt;` 标签的 `formaction`、`formenctype` 和 `formmethod` 属性分别用于指定表单提交的 URL 地址、数据编码类型和提交方法,这些属性可覆盖 `&lt;form&gt;` 标签中的相应属性,并且主要适用于 `type=&quot;submit&quot;` 和 `type=&quot;image&quot;` 的输入类型。
|
移动开发 JavaScript 前端开发
HTML5 表单属性7
`pattern` 属性使用正则表达式验证 `&lt;input&gt;` 元素的值,适用于 `text`, `search`, `url`, `tel`, `email`, 和 `password` 类型。
|
移动开发 UED HTML5
HTML5 表单属性6
`min`、`max` 和 `step` 属性用于限制 `&lt;input&gt;` 标签中的数值或日期范围。例如,可以设置日期选择器的最早和最晚日期,或限制数字输入框的值范围。`multiple` 属性允许在 `&lt;input&gt;` 中选择多个值,适用于邮箱和文件类型。这些属性增强了表单控件的功能性和用户体验。
|
移动开发 HTML5
HTML5 表单属性4
`formnovalidate` 属性是一个布尔属性,用于 `&lt;input&gt;` 元素,指示该输入在表单提交时不需验证,可覆盖 `&lt;form&gt;` 元素的 `novalidate` 属性,常与 `type=&quot;submit&quot;` 一起使用。示例中展示了如何通过两个提交按钮(一个使用验证,另一个不使用)实现不同的表单提交方式。
|
移动开发 HTML5
HTML5 表单属性5
`height` 和 `width` 属性用于 `&lt;input&gt;` 标签中的 `image` 类型,定义图像的高度和宽度。
|
移动开发 JavaScript 前端开发
HTML5 表单属性2
`novalidate` 是 HTML `&lt;form&gt;` 元素的布尔属性,用于禁用浏览器的默认表单验证功能。当此属性存在时,浏览器不会检查表单字段是否符合预设的验证规则,允许开发者通过 JavaScript 等手段自定义验证逻辑。
|
移动开发 UED HTML5
HTML 表单和输入7
HTML 表单标签包括 `&lt;form&gt;`、`&lt;input&gt;`、`&lt;textarea&gt;`、`&lt;label&gt;`、`&lt;fieldset&gt;`、`&lt;legend&gt;`、`&lt;select&gt;`、`&lt;optgroup&gt;`、`&lt;option&gt;` 和 `&lt;button&gt;` 等,用于创建用户输入界面。HTML5 新增了 `&lt;datalist&gt;`、`&lt;keygen&gt;` 和 `&lt;output&gt;` 标签,增强了表单的功能和用户体验。
HTML 表单和输入6
提交按钮 `&lt;input type=&quot;submit&quot;&gt;` 用于将表单数据发送到服务器。表单的 `action` 属性指定接收数据的服务器文件,而 `method` 属性定义了提交方式(`get` 或 `post`)。`get` 方法将数据附加在 URL 后,适用于非敏感信息;`post` 方法将数据包含在请求体中,适用于敏感数据。示例展示了如何使用这两种方法提交表单。
|
移动开发 UED HTML5
HTML5 表单属性1
HTML5为&lt;form&gt;和&lt;input&gt;标签引入了多个新属性,增强了表单的功能性和用户体验。其中,&lt;form&gt;新增了autocomplete和novalidate属性;&lt;input&gt;则增加了如autofocus、formaction、placeholder等13个新属性,支持更精细的表单控制和数据验证。例如,autocomplete属性允许表单或输入字段提供自动完成功能,提高用户填写效率。