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 treepanel复选框选中父节点与子节点的问题
Apr 02 Javascript
javascript删除字符串最后一个字符
Jan 14 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 Javascript
Vue数据驱动模拟实现5
Jan 13 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
详解js的作用域、预解析机制
Feb 05 Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
Feb 19 Javascript
少女风vue组件库的制作全过程
May 15 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 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修改密码方法总结
2008/03/25 PHP
解析argc argv在php中的应用
2013/06/24 PHP
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
在Python的web框架中配置app的教程
2015/04/30 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
想学画画?python满足你!
2020/12/24 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
《和田的维吾尔》教学反思
2014/04/14 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
施工安全生产承诺书
2014/05/23 职场文书
运动会稿件100字
2014/09/24 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python