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 相关文章推荐
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
Mar 06 Javascript
基于jquery的loading效果实现代码
Nov 05 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
用file标签实现多图文件上传预览
Feb 14 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
Jun 22 Javascript
Angular中支持SCSS的方法
Nov 18 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
Jan 26 Javascript
讲解vue-router之什么是嵌套路由
May 28 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 Javascript
vue实现倒计时功能
Mar 24 Vue.js
详解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下关于中英数字混排的字符串分割问题
2010/04/06 PHP
深入PHP FTP类的详解
2013/06/13 PHP
PHP简单日历实现方法
2016/07/20 PHP
php精度计算的问题解析
2019/06/21 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python单元测试实例详解
2018/05/25 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
技术学校毕业生求职信分享
2013/12/02 职场文书
团员个人的自我评价
2013/12/02 职场文书
物流业务员岗位职责
2014/02/08 职场文书
作文批改评语大全
2014/04/23 职场文书
高中生毕业评语
2014/12/30 职场文书
闪闪红星观后感
2015/06/08 职场文书
十八大观后感
2015/06/12 职场文书
爱的教育观后感
2015/06/17 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python
总结Python常用的魔法方法
2021/05/25 Python
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技