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 实现GridView异步排序、分页的代码
Feb 06 Javascript
js jquery数组介绍
Jul 15 Javascript
jQuery实现单行文字间歇向上滚动源代码
Jun 02 Javascript
jQuery使用height()获取高度需要注意的地方
Dec 13 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
Oct 23 Javascript
微信小程序 教程之wxapp 视图容器 view
Oct 19 Javascript
快速实现jQuery多级菜单效果
Feb 01 Javascript
详解Javascript百度地图接口开发文档中的类和方法
Feb 07 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
原生js通过一行代码实现简易轮播图
Jun 05 Javascript
Ajax是什么?Ajax高级用法之Axios技术
Apr 21 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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php日历制作代码分享
2014/01/20 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
Python中的默认参数详解
2015/06/24 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
python属于跨平台语言码
2020/06/09 Python
小学优秀班干部事迹材料
2014/05/25 职场文书
银行授权委托书范本
2014/10/04 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL