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 相关文章推荐
ExtJS 2.0实用简明教程之应用ExtJS
Apr 29 Javascript
javascript 一些用法小结
Sep 11 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
JS弹出层的显示与隐藏示例代码
Dec 27 Javascript
每天一篇javascript学习小结(Function对象)
Nov 16 Javascript
JavaScript中数组Array方法详解
Feb 27 Javascript
JS实现留言板功能
Jun 17 Javascript
webpack3之loader全解析
Oct 26 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
JS基于开关思想实现的数组去重功能【案例】
Feb 18 Javascript
vue实现前端分页完整代码
Jun 17 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
DIY实用性框形天线
2021/03/02 无线电
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
电子商务专业个人的自我评价
2013/11/19 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
公司授权委托书范文
2014/08/02 职场文书
超市开店计划书
2014/09/15 职场文书
大学生英文求职信范文
2015/03/19 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
初中美术教学反思
2016/02/17 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
详解Vue router路由
2021/11/20 Vue.js