AngularJs ng-change事件/指令的用法小结


Posted in Javascript onNovember 01, 2017

本文介绍了AngularJs ng-change事件/指令的小结,分享给大家,也给自己留个笔记

定义和用法

ng-change 指令用于告诉 AngularJS 在 HTML 元素值改变时需要执行的操作。

ng-change 指令需要搭配 ng-model 指令使用。

AngularJS ng-change 指令指令不会覆盖原生的 onchange 事件, 如果触发该事件,ng-change 表达式与原生的 onchange 事件都会执行。

ng-change 事件在值的每次改变时触发,它不需要等待一个完成的修改过程,或等待失去焦点的动作。

ng-change 事件只针对输入框值的真实修改,而不是通过 JavaScript 来修改。

语法

<element ng-change="expression"></element>

  1. <input>, <select>, 和  <textarea> 元素支持。
  2. <radio>,<checkbox>

参数值

描述
expression 元素值改变时执行表达式。

实例说明:当输入框的值改变时执行函数:

<body ng-app="myApp">

<div ng-controller="myCtrl">
 <input type="text" ng-change="myFunc()" ng-model="myValue" />
 <p>The input field has changed {{count}} times.</p>
</div>

<script>
angular.module('myApp', [])
.controller('myCtrl', ['$scope', function($scope) {
 $scope.count = 0;
 $scope.myFunc = function() {
  $scope.count++;
 };
}]);
</script>

</body>

实例说明,radio和checkbox

注:checkbox ng-model总是是true或false,而不是value,其他的ng-model默认都是value 的值

HTML

<h3>Radio 控件测试</h3> 
<p><label> 
  <input type="radio" value="男" name="sex" ng-model="value1" ng-change="radioChecked()" /> 
  男 
 </label> 
 <label> 
  <input type="radio" value="女" name="sex" ng-model="value1" ng-change="radioChecked()" /> 
  女 
 </label></p> 
<h3>checked 控件测试</h3> 
<p><div class="checkbox"> 
  <label> 
   <input name="agree" type="checkbox" value="同意" ng-model="value2" ng-change="checkboxClick()" /> 
   同意协议 
  </label> 
 </div> 
 <div class="checkbox"> 
  <label> 
   <input name="agree" type="checkbox" value="同意2" ng-model="value2" ng-change="checkboxClick()" /> 
   同意协议2 
  </label> 
 </div></p>

JS:

var app = angular.module('myApp', []); 
app.controller('validateCtrl', function ($scope) { 
 //randio ng-change事件和原始onchange相同 
 //radio ng-model 的值是value 
 $scope.radioChecked = function () { 
  console.info($scope.value1); 
 } 
 //checkbox ng-change事件和原始onchange相同 
 //checkbox ng-model总是是true或false 
 $scope.checkboxClick = function () { 
  console.info($scope.value2); 
 } 
});

实例说明,text,select

HTML

<form class="form-horizontal"> 
 <div class="form-group"> 
  <label class="control-label">姓名:</label> 
  <input type="text" class="form-control" ng-model="name" ng-change="txtChange();" /> 
 </div> 
 <div class="form-group"> 
  <label class="control-label">选择年级:</label> 
  <select class="form-control" ng-change="selectChange();" ng-model="grade"> 
   <option value="1">一年级</option> 
   <option value="2">二年级</option> 
  </select> 
 </div> 
</form>

JS

var app = angular.module('myApp', []); 
app.controller('validateCtrl', function ($scope) { 
 //textbox 的ng-change事件和原始ng-change不相同,而是和$scope.$watch()监听相同 
 //textbox 的ng-model为当前输入框的内容,为value值 
 $scope.txtChange = function () { 
  console.info($scope.name); 
 } 
 //select 的ng-change事件和原始ng-change相同 
 //ng-model 的默认情况下ng-model的结果为value值 
 $scope.selectChange = function () { 
  console.info($scope.grade); 
 } 
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 绑定时间实现代码
May 03 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
Feb 10 Javascript
javascript学习笔记(六) Date 日期类型
Jun 19 Javascript
JavaScript数组实现数据结构中的队列与堆栈
May 26 Javascript
d3.js实现简单的网络拓扑图实例代码
Nov 06 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
canvas实现环形进度条效果
Mar 23 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
IE9 elementUI文件上传的问题解决
Oct 17 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
vue 限制input只能输入正数的操作
Aug 05 Javascript
详解Vue组件实现tips的总结
Nov 01 #Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
Nov 01 #Javascript
Angular 4根据组件名称动态创建出组件的方法教程
Nov 01 #Javascript
js前端导出Excel的方法
Nov 01 #Javascript
JS二分查找算法详解
Nov 01 #Javascript
ES7中利用Await减少回调嵌套的方法详解
Nov 01 #Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
Nov 01 #Javascript
You might like
PHP简单获取视频预览图的方法
2015/03/12 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python实现从字典中删除元素的方法
2015/05/04 Python
Python中查看文件名和文件路径
2017/03/31 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
基于python实现学生信息管理系统
2019/11/22 Python
python开发入门——set的使用
2020/09/03 Python
python实现登录与注册系统
2020/11/30 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
四查四看剖析材料
2014/02/14 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
法人代表证明书范本
2015/06/18 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
python多次执行绘制条形图
2022/04/20 Python