AngularJs ng-change事件/指令的用法小结

本文介绍了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);
 }
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • AngularJS ng-change 指令的详解及简单实例

    AngularJS ng-change 指令 AngularJS 实例 当输入框的值改变时执行函数: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head>

  • AngularJs ng-change事件/指令的用法小结

    本文介绍了AngularJs ng-change事件/指令的小结,分享给大家,也给自己留个笔记 定义和用法 ng-change 指令用于告诉 AngularJS 在 HTML 元素值改变时需要执行的操作. ng-change 指令需要搭配 ng-model 指令使用. AngularJS ng-change 指令指令不会覆盖原生的 onchange 事件, 如果触发该事件,ng-change 表达式与原生的 onchange 事件都会执行. ng-change 事件在值的每次改变时触发,它不需要

  • Angular使用操作事件指令ng-click传多个参数示例

    本文实例讲述了Angular使用操作事件指令ng-click传多个参数功能.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset="UTF-8"> <title>www.jb51.net angular ng-click用于操作事件的指令</title> <script src="a

  • AngularJS中directive指令使用之事件绑定与指令交互用法示例

    本文实例讲述了AngularJS中directive指令使用之事件绑定与指令交互用法.分享给大家供大家参考,具体如下: AngularJS中模板的使用,事件绑定以及指令与指令之间的交互 <!doctype html> <html ng-app="myapp"> <head> <meta charset="utf-8"/> </head> <body ng-controller="Shield

  • Angularjs 事件指令详细整理

    Angularjs 事件指令详细整理 ngClick 适用标签:所有 触发条件:单击 #html <div ng-controller="LearnCtrl"> <div ng-click="click()">click me</div> <button ng-click="click()">click me</button> </div> #script angular.m

  • jQuery中change事件用法实例

    本文实例讲述了jQuery中change事件用法.分享给大家供大家参考.具体分析如下: change事件会在匹配元素失去焦点或者其值获得焦点并且改变时触发. 一个完整的事件过程,不但要有能够触发事件的条件,而且还要有事件处理程序. 可以通过change()方法为change事件绑定事件处理程序.例如: 复制代码 代码如下: $("input").change(function(){$("input").css("backgroundColor",

  • Angularjs的键盘事件的绑定

    Angularjs的键盘事件的绑定 推荐button 方法一:ng内置指令 <button ng-click="login()" ng-keypress="todoSomething($event)" class="btn btn-success btn-lg" ng-disabled="loginForm.$invalid"> 登录 </button> 说明:在对应的控制器中的$scope上绑定一个t

  • 浅谈angularJS中的事件

    什么是事件 •如同浏览器响应浏览器层的事件,比如鼠标点击.获得焦点,angular应用也可以响应angular事件 •angular事件系统并不与浏览器的事件系统相通,我们只能在作用域上监听angular事件而不是DOM事件 事件传播 因为作用域是有层次的,所以我们可以在作用域链上传递事件: •使用$emit冒泡事件,事件从当前子作用域冒泡到赋作用域,在产生事件的作用域之上的所有作用域都会收到这个事件的通知 $emit()方法带有两个参数: name  要发出的事件的名称 args   一个参数

  • Vue中的常用指令及用法总结

    首先来聊聊Vue框架,Vue是一套用于构建用户界面的渐进式的JavaScript框架,对于初学者来说是非常友好的 , Vue的虚拟Dom , 数据双向绑定 , 都使开发者可以快速上手 , 而我个人感觉 , Vue的指令使用起来非常的方便 , 今天的这篇文章们就来聊聊常用的Vue指令吧! v-for 在初学任何一门语言的时候我们或多或少都接触过 for for (let i = 0; i < arr.length; i++) { } Vue 的 v-for跟我们js里面的最根本的概念还是一样的就是

  • AngularJS中下拉框的高级用法示例

    本文实例讲述了AngularJS中下拉框的高级用法.分享给大家供大家参考,具体如下: HTML正文: <body ng-app="myApp"> <!-- 对象内部属性遍历:x--key y---value --> <div ng-controller="myctr01"> {{sites}}<br> <select ng-model="site" ng-options="x for

  • AngularJS中下拉框的基本用法示例

    本文实例讲述了AngularJS中下拉框的基本用法.分享给大家供大家参考,具体如下: HTML正文: <div ng-app="myApp" ng-controller="myCtrl"> <select ng-model="selectedName" ng-options="x for x in names"></select> 等价于: <select> <option

随机推荐