input[text]

input一般和ngModel结合使用来实现双向绑定,同时angular提供了很多表单校验的指令

  • required 必填
  • ngRequired 必填(ngRequired可以控制是否是必填校验)
  • ngMinlength 最小长度
  • ngMaxlength 最大长度
  • pattern 正则匹配
  • ngPattern 正则匹配
  • ngChange 内容改变时触发
  • ngTrim 是否trim数据,默认true

    #html
    <div ng-controller="LearnCtrl">
    <input type="text"
    ng-model="username"
    required
    ng-required="true"
    ng-minlength="6"
    ng-maxlength="15"
    pattern="[0-9]{6,15}"
    ng-pattern="/^[0-9]{6,15}$/"
    ng-change="change()"
    ng-trim="false"
    />
    </div> #script
    angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
    $scope.change = function () {
    alert('change');
    } });

当input有校验属性时,如果输入的值不符合校验条件,model会被更新成undefined。如果想正常更新model可以通过ngModelOptions设置。

版本:v1.3.9-local

input[checkbox]

当未设置ngTrueValue和ngFalseValue时,默认值是true和false。

#html
<input type="checkbox" ng-model="check"/>
<p>{{check}}</p>

设置了这两个值了,就可以指定选中和未选中的model值。checkbox同样也有ng-chage指令。

ngTrueValue和ngFalseValue的参数是表达式哦。

#html
<div ng-controller="LearnCtrl">
<input type="checkbox"
ng-model="check"
ng-true-value="'YES'"
ng-false-value="'N'+'O'"
ng-change="change()"/> <p>{{check}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.check = 'YES';
$scope.change = function () {
alert('change');
}
});

input[radio]

单选按钮

  • value 选择中时的值
  • ngValue 选择中时的值(表达式)
  • ngchange model更新触发

没有required属性,没办法做必填校验,所以最好初始化的时候默认选中一个。

#html
<div ng-controller="LearnCtrl">
<input type="radio"
ng-model="radio"
ng-change="change()"
value="value1"/>
<input type="radio"
ng-model="radio"
ng-change="change()"
ng-value="'value2'"/> <p>{{radio}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.radio = 'value2';
$scope.change = function () {
alert('change');
}
});

input[date]

H5新增的日期选择器。

  • required 必填
  • ngRequired 必填
  • min 最小日期
  • max 最大日期
  • ngChange model更新触发

如果给date初始化值,model一定得是Date类型,否则会报错。

#html
<div ng-controller="LearnCtrl">
<input type="date"
ng-model="date"
min="2015-12-12"
max="2015-12-22"
rquired
ng-required
ng-change="change()"/> <p>{{date}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.date = new Date('2015-12-12');
$scope.change = function () {
alert('change');
}
});

input[datetime-local]

日期时间选择器 用法基本同input[date],就是比date多了个时间选择。

input[month]

月份选择器,只能选择年和月。

  • required 必填
  • ngRequired 必填
  • min 最小月份
  • max 最大月份
  • ngChange model更新触发

如果给month初始化值,model一定得是Date类型,否则会报错。

#html
<div ng-controller="LearnCtrl">
<input type="month"
ng-model="month"
required
ng-required
min="2015-01"
max="2015-12"
ng-change="change()"/> <p>{{month}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.month = new Date('2015-05');
$scope.change = function () {
alert('change');
}
});

input[time]

时间选择

  • required 必填
  • ngRequired 必填
  • min 最小时间
  • max 最大时间
  • ngChange model更新时触发

如果给time初始化值,model一定得是Date类型,否则会报错。

#html
<div ng-controller="LearnCtrl">
<input type="time"
required
ng-required
min="10:00:00"
max="23:00:00"
ng-model="time"
ng-change="change()"/> <p>{{time}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.time = new Date('2015-12-12 20:00:00');
$scope.change = function () {
alert('change');
}
});

input[week]

周选择

  • required 必填
  • ngRequired 必填
  • min 最小周数
  • max 最大周数
  • ngChange model更新触发

如果给week初始化值,model一定得是Date类型,否则会报错。

#html
<div ng-controller="LearnCtrl">
<input type="week"
ng-model="week"
required
ng-required
min="2015-W12"
max="2015-W20"
ng-change="change()"/> <p>{{week}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.week = new Date('2015-01-12');
$scope.change = function () {
alert('change');
}
});

input[number]

数字类型

  • required 必填
  • ngRequired 必填
  • min 最小值
  • max 最大值
  • ngMinlength 最小长度
  • ngMaxlength 最大长度
  • pattern 正则匹配
  • ngPattern 正则匹配
  • ngChange model更新触发

即使没有使用校验属性,只要数据不是Number类型,model就会被更新成undefined。

#html
<div ng-controller="LearnCtrl">
<input type="number"
ng-model="number"
required
ng-required
min="10"
max="100"
ng-minlength=2
ng-maxlength="3"
pattern="3[0-9]{1}"
ng-pattern="/^3[0-9]{1}$/"
ng-change="change()"/> <p>{{number}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.number = 35;
$scope.change = function () {
alert('change');
}
});

input[email]

邮箱类型

  • required 必填
  • ngRequired 必填
  • ngMinlength 最小长度
  • ngMaxlength 最大长度
  • pattern 正则匹配
  • ngPattern 正则匹配
  • ngChange model更新触发

即使没有使用校验属性,只要数据不符合邮箱格式,model就会被更新成undefined。

#html
<div ng-controller="LearnCtrl">
<input type="email"
ng-model="email"
required
ng-required
ng-minlength="10"
ng-maxlength="20"
pattern="1@123.com"
ng-pattern="/^1@123.com$/"
ng-change="change()"/> <p>{{email}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.email = '';
$scope.change = function () {
alert('change');
}
});

input[url]

url类型

  • required 必填
  • ngRequired 必填
  • ngMinlength 最小长度
  • ngMaxlength 最大长度
  • pattern 正则匹配
  • ngPattern 正则匹配
  • ngChange model更新触发

即使没有使用校验属性,只要数据不符合url格式,model就会被更新成undefined。

 
#html
<div ng-controller="LearnCtrl">
<input type="url"
ng-model="url"
required
ng-required
ng-minlength="6"
ng-maxlength="15"
pattern="http://www.test.com"
ng-pattern="/^http://www.test.com$/"
ng-change="change()"/> <p>{{url}}</p>
</div> #script
angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) {
$scope.url = '';
$scope.change = function () {
//alert('change');
}
});

angularjs—指令input的更多相关文章

  1. AngularJS指令

    1. AngularJS指令的特点: AngularJS通过被称为指令的新属性来扩展HTML,指令的前缀为ng-. AngularJS通过内置的指令来为应用添加功能. AngularJS允许你自定义指 ...

  2. AngularJS 指令

    AngularJS 指令 AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-. ng-app 指令 ng-app 指令定义了 AngularJS 应用程序的 根元素. ng-app 指 ...

  3. angularjs指令(二)

    最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 angula ...

  4. AngularJS学习笔记二:AngularJS指令

    AngularJS 指令: AngularJS 通过被称为 指令 的新属性来扩展 HTML. AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-. 几个常用 指令: ng-app 指令 ...

  5. AngularJS指令进阶 – ngModelController详解

    AngularJS指令进阶 – ngModelController详解 在自定义Angular指令时,其中有一个叫做require的字段,这个字段的作用是用于指令之间的相互交流.举个简单的例子,假如我 ...

  6. AngularJS学习之旅—AngularJS 指令(三)

    1.AngularJS 指令 AngularJS 通过被称为 指令 的新属性来扩展 HTML. AngularJS 通过内置的指令来为应用添加功能. AngularJS 允许你自定义指令.2.Angu ...

  7. 一招制敌 - 玩转 AngularJS 指令的 Scope (作用域),讲得特别好

    学习了AngularJS挺长时间,最近再次回首看看指令这部分的时候,觉得比自己刚开始学习的时候理解的更加深入了,尤其是指令的作用域这部分. 步入正题: 每当一个指令被创建的时候,都会有这样一个选择,是 ...

  8. AngularJS指令封装高德地图组件

    1 概述 公司移动门户原来是基于AngularJS指令封装的百度地图组件,用于签到.签退.定位等功能,在使用过程中发现百度地图频繁的弹出广告,所以打算重新引用其它地图组件,最后决定基于AngularJ ...

  9. AngularJS 指令实践指南(二)

    这个系列教程的第一部分给出了AngularJS指令的基本概述,在文章的最后我们介绍了如何隔离一个指令的scope.第二部分将承接上一篇继续介绍.首先,我们会看到在使用隔离scope的情况下,如何从指令 ...

随机推荐

  1. HTML5新增标签与属性

    目录 一.HTML5新增属性 1.1.contextmenu 1.2.contentEditable 1.3.hidden 1.4.draggable 1.5.data-* 1.6.placehold ...

  2. php相对于java、js几点不太一样的地方

    1.PHP 变量作用域 在 PHP 中,可以在脚本的任意位置对变量进行声明. 变量的作用域指的是变量能够被引用/使用的那部分脚本. PHP 有三种不同的变量作用域: local(局部) global( ...

  3. DAC Usage2:通过DAC实现DB Schema的Migration和Upgrade

    一,Introduce Extract DAC 是从现存的DB中创建DAC,抽取DB Object的definition 和 与之相关的实例级别的元素,比如Login,以及Login 和User之间的 ...

  4. IIS7.5+WebConfig实现页面伪静态和301重定向

    IIS7.5+WebConfig实现页面伪静态和301重定向 使用URLRewriter组件在windows 2003 +iis 6.0下配置伪静态的文章网络上一大堆.但在iis7.0或iis 7.5 ...

  5. 【已解决】WinPhone模拟器报错:模拟器没法确定来宾虚拟机通信的主机ID地址。某些功能已被禁用

    先看警告 再看错误信息 计算机管理打不开就==>Win+R ==>compmgmt.msc 发现,dnt在管理员权限组里面,也在Hyper-V权限组里面 看看Hyper-V的驱动有木有被禁 ...

  6. Delaunay Triangulation in OpenCascade

    Delaunay Triangulation in OpenCascade eryar@163.com 摘要:本文简要介绍了Delaunay三角剖分的基础理论,并使用OpenCascade的三角剖分算 ...

  7. 从零开始编写自己的C#框架(5)——三层架构介绍

    三层架构对于开发人员来说,已经是司空见惯了,除了大型与超小型项目外,大多都是这种架构来进行开发. 在这里为初学者们简单介绍一下三层架构: (下面内容摘自<趣味理解:三层架构与养猪—<.NE ...

  8. h5直播开发之旅总结

    前言 关于直播,有很多相关技术文章,这里不多说. 作为前端,我们比较关心我们所需要的. 直播的大致流程: APP端调用摄像头 -> 拍摄视频 -> 实时上传视频 -> 服务器端获取视 ...

  9. 【Android】[转] Android Codec默认profile使用的是Baseline

    关于Android默认Codec使用的Profile找了半天没发现,还是Google的时候发现了开源中国有网友写的这边博客,相关的内容很少,便贴了过来做个笔记. 以下内容转自Android Media ...

  10. 模拟实现SQL Server中的datepart(week,date)的功能

    本文目录列表: 1.为什么要模拟实现datepart(week,date)的功能 2.具体实现思路 3.T-SQL代码实现逻辑 4.总结语 5.参考清单列表   1.为什么要模拟实现datepart( ...