脏值检测

以前用jquery对页面中的表单元素做验证

绑定事件(表单元素)focus,blur,keydown,keyup,change,click 等等

在事件回调函数中获取需要验证的表单

对表单内容做验证处理(正则)

根据结果显隐提示

提交表单时候我们还会对数据进行拼接(ajax)

注:一般不用submit 自带的提交表单功能 ,因为不利于js管理

在angular中做表单验证只需要添加几个指令即可

在创建表单的时候,angular会根据表单(form , input 等等)标签的name 属性在作用域中创建一个变量

input 表单的name 属性定义在 form 元素 name 属性对应的变量内部

在作用域中第一个是根据form 标签寻找name 属性并映射变量(第一次不会根据input等表单作变量映射)

第二次会在form 元素中遍历表单元素并映射到变量中

不论是表单 form 元素 ,还是 input 元素对应的变量都有四个属性

$dirty 是否被修改过

True 已经被修改过
False 没有被修改过

$pristine 是否被修改过

True 没有修改过
False 已经被修改过

$valid 是否合法

True 合法
False 不合法

$invalid 是否合法

True 不合法
False 合法

时间: 2024-10-16 09:11:29

脏值检测的相关文章

angular脏值检测策略

Angular默认情况下保守,当某个节点发生更改时,每次检查每个组件,如下图 我们发现每次变化检测都是从根组件开始,从上往下执行.虽然 Angular 2 优化后的变化检测执行的速度很快,每毫秒几十万次,但我们能否只针对那些有变化的组件才执行变化检测或灵活地控制变化检测的时机呢 ? 答案是有的,接下来我们看一下具体怎么进行优化. 先来一个简单的例子: app.component.ts import { Component } from '@angular/core'; @Component({

Angular DirtyChecking(脏值检查) $watch, $apply, $digest

Dirty Checking (脏值检查) Digest cycle and $scope Digest cycle and $scope First and foremost, AngularJS defines a concept of a so-called digest cycle. This cycle can be considered as a loop, during which AngularJS checks if there are any changes to all t

angularjs 做不到实时脏值查询

angularjs 做不到脏值查询 ,数据请求过来,不操作其他按钮,请求的值就是展示不出来:(相当于,只有手动触发,angularjs内部才会把脏值查询出来): 解决办法:在请求过来的值旁边加上$scope.apply(),这样数据就能直接展示出来了 举例说明 success:function(data){ $scope.msg=data; $scope.$apply(); } 或者: success:function(data){ $scope.$apply(function(){ $scop

leetcode-峰值检测

寻找峰值 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可. 你可以假设 nums[-1] = nums[n] = -∞. 示例 1: 输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素,你的函数应该返回其索引 2. 示例 2: 输入: nums = [1,2,1,3,5,6,4] 输出: 1 或 5 解释: 你的

C#对文件进行MD5值检测

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.ComponentModel; 7 using System.Data; 8 using System.Drawing; 9 using System.IO; 10 using System.Security.Cryp

我的angularjs源码学习之旅3——脏检测与数据双向绑定

前言 为了后面描述方便,我们将保存模块的对象modules叫做模块缓存.我们跟踪的例子如下 <div ng-app="myApp" ng-controller='myCtrl'> <input type="text" ng-model='name'/> <span style='width: 100px;height: 20px; margin-left: 300px;'>{{name}}</span> </di

AngularJS中$timeout和$interval的用法详解

1. 先将$interval,$timeout,作为参数注入到controller中,例如rds.controller('controllerCtrl', ['app', '$scope','$http','$routeParams','$filter','$location','$interval','$timeout', function (app, $scope,$http,$routeParams,$filter,$location,$interval,$timeout) {2.在需要用

Angularjs学习笔记5_scope和$rootScope

$rootScope  $rootScope 是最顶级的scope,它对应着含有 ng-app 指令属性的那个DOM元素.     app.run(function($rootScope) {       $rootScope.name = "Ari Lerner";  $rootScope.test = new Date();     }); app.run函数看作是Angular应用的main方法. 可以在view的任何地方访问这个name属性,使用模版表达式{{}},像这样 {{

2015前端生态发展回顾

原文:https://github.com/kuitos/kuitos.github.io/issues/32全部文章:https://github.com/kuitos/kuitos.github.io/issues 引用苏宁前端架构师的一个总结作为开篇 编程技术及生态发展的三个阶段 最初的时候人们忙着补全各种API,代表着他们拥有的东西还很匮乏,需要在语言跟基础设施上继续完善 然后就开始各种模式,标志他们做的东西逐渐变大变复杂,需要更好的组织了 然后就是各类分层MVC,MVP,MVVM之类,