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 Ajax 学习实例2 向页面发出请求 返回JSon格式数据
Mar 15 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
jQuery打印指定区域Html页面并自动分页
Jul 04 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
详解关于Vuex的action传入多个参数的问题
Feb 22 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
May 29 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 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
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
js星星评分效果
2014/07/24 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
Python实现堆排序的方法详解
2016/05/03 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
质检部岗位职责
2013/11/11 职场文书
我的求职计划书
2014/01/10 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
2014年化验室工作总结
2014/11/21 职场文书
2014年教研员工作总结
2014/12/23 职场文书
观后感的写法
2015/06/19 职场文书
Redis如何实现验证码发送 以及限制每日发送次数
2022/04/18 Redis