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面向对象编程(三) 非构造函数的继承
Aug 28 Javascript
JQuery select(下拉框)操作方法汇总
Apr 15 Javascript
javascript+ajax实现产品页面加载信息
Jul 09 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
js自定义select下拉框美化特效
May 12 Javascript
jQuery获取Table某列的值(推荐)
Mar 03 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
May 18 Javascript
jQuery AJAX应用实例总结
May 19 jQuery
JavaScript实现前端网页版倒计时
Mar 24 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
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
python使用多线程不断刷新网页的方法
2015/03/31 Python
初步解析Python中的yield函数的用法
2015/04/03 Python
python读写LMDB文件的方法
2018/07/02 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
翻译专业应届生求职信
2013/11/23 职场文书
营销专业应届生求职信
2013/11/26 职场文书
给实习单位的感谢信
2014/02/01 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
在职党员进社区活动总结
2014/07/05 职场文书
社区助残日活动总结
2014/08/29 职场文书
超市食品安全承诺书
2015/04/29 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
Golang解析JSON对象
2022/04/30 Golang