记得第一次听说AngularJS这项很赞的Web的前端技术,那时还是2014年,年中时我们我的一个大牛兄弟当时去面试时,被问到了是否熟悉该技术,当时他了解和使用的技术比较多。...在2016新年初始,正好有一些富余时间,正好学习下这个被称为就是“”两个大括号“”的前端框架(当前已经非常成熟,国内大部分公司的部分项目均已使用),补补我薄弱无比的前端技术,当目前为止,写JS代码仍然是非常的抓瞎...其最基本的几个概念如下所示: 客户端模板:在我们过去使用的多页应用程序中,我们将html和数据装配混合起来生成页面后发送到浏览器,而单页面的AJAX应用则是将html模板和数据都直接发送给浏览器,由客户端装配...迭代数据;ng-model绑定数据,这是个双向绑定,View中的修改会影响到model,之后会有表单输入的例子再次强化这个概念;ng-click绑定单击事件处理函数。...其实不然,之前提取非侵入式的概念也是因为当时前端开发的痛点:不同浏览器对js的支持不同,运行方式也不同;事件处理器都引用全局命名空间的函数,在集成时存在命名冲突;事件监听器绑定数据结构和行为,难以维护。
ng-blur 描述:规定blur 事件的行为 实例:当输入框失去焦点的(onblur)时执行表达式: 时执行的表达式。 实例:当输入框 的值改变时执行函数。 ...ng-change 事件在值的每次改变时触发,它不需要等等一个完成的修改过程或等待失去焦点的动作 ng-change 事件只针对输入框值的真实修改,而不是通过JavaScript 来修改...ng-click 定义元素被点击时的行为 实例:按钮没次点击时,计数变量count自动加1; ng-click ="count = count...ng-cloak 在应用正要加载时防止其闪烁。 实例:页面加载时防止应用闪烁。
: (常用的单击事件) ... var app = angular.module("dintalk",[]); //$scope 是控制层和视图层交换数据的桥梁 app.controller...新建时清空实体数据(双向绑定的数据):ng-click="entity={}" --> ng-click="entity={}" type="button" class="btn btn-default...更新 (遍历展示数据) --> ng-repeat="item in list"> ng-click="updateSelection(item.id,$event)"...-- 4.新建或更新时的保存 --> ng-click="save()" class="btn btn-success" data-dismiss="modal" aria-hidden...} ) } //2.定义数组保存用户勾选的ids $scope.selectIds = []; //3.页面数据的复选框点击事件调用该方法
> 当点击元素时调用函数editUser() 如果edit = true 显示...通常我们使用 http 请求 (AJAX) 从服务端获取数据,返回的数据我们可以通过 使用 innerHTML 写入到 HTML 元素中。 ...checkbox" ng-model="myCheck"> 应用中动画不宜太多,但合适的使用动画可以增加页面的丰富性...ngAnimate 模型并不能使用HTML 元素产生动画,但是ngAnimate 会检测事件,类似隐藏显示HTML元素 如果事件发生ngAnimate 就会使用预定义的class来设置HTML...当 HTML 元素位置改变时,ng-repeat 指令同样可以添加 ng-move 类 。 此外, 在动画完成后,HTML 元素的类集合将被移除。
当浏览器接收到可以被 angular context 处理的事件时,$digest 循环就会触发,遍历所有的 $watch,最后更新 dom。...举个栗子 ng-click="val=val+1">increase 1 click 时会产生一次更新的操作(至少触发两次 $digest 循环) 按下按钮 浏览器接收到一个事件...DOM事件,如用户输入文本,点击按钮等,(ng-click) XHQ响应事件($http) 浏览器Location变更事件,即Url中hash部分变更($location) Timer事件($Timeout...这是一种行之有效的减少绑定表达式数量的方法,与 ng-repeat 连用效果更佳(下文会提到),但过度使用也容易引发 bug。...tab 被选中时该 controller 才会执行,可以减少各页面的互相干扰 如果 controller 中调用接口获取数据,那么仅当对应 tab 被选中时才会加载,避免网络拥挤 当然也有缺点: DOM
name price number 总价 删除 ng-repeat...$scope.prod = {}; // 定义一个索引值 var idx=-1 //定义一个点击按钮时触发的事件...,用于单击后弹出模块窗口用于修改数据 $scope.xiu=function($index){ //显示窗口 $scope.xiu_show...=true //将选中行的数据绑定到临时对象prod中,在下面的模态窗口中展示出来 $scope.prod.name=$scope.goods[$index]...//选中行的索引赋值给全局变量idx idx=$index } //定义一个单机保存按钮时触发的事件
ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序。...ng-click 是最常用的单击事件指令,再点击时触发控制器的某个方法。...response.message); } } ); } 4.3.2 HTML 绑定表单元素,我们用ng-model指令,绑定按钮的单击事件我们用...再点击删除按钮时需要用到这个存储了ID的数组。... $scope.search($scope.paginationConf.currentPage, $scope.paginationConf.itemsPerPage); } 将查询按钮绑定的方法
当html加载完成后,angularjs就开始解析DOM节后并编译其中包含的directives,这就是compilation阶段的工作; 一旦html中的所有元素都编译完了,angularjs...从本例来看,在页面中通过ng-repeat得到当前current的这个story,并在ng-click事件中添加storyboard.setCurrentStory(story)函数,而且将story作为参数传入...当storyboard.currentStory为null时,我们就隐藏update按钮同时显示create的按钮。 ...如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!...如果您想持续关注我的文章,请扫描二维码,关注JackieZheng的微信公众号,我会将我的文章推送给您,并和您一起分享我日常阅读过的优质文章。
7 应用程序 8 参考手册 首先看一下html的事件 关于html的事件,文中给出了三个例子,点击、隐藏、显示。...使用方法基本相同: 先看一下点击的例子,点击按钮后,会触发ng-click内的方法,进行累计加一: 加载js。 ...> Edit First Name Last Name ng-repeat... 关于应用程序 创建AngularJS应用程序 我的笔记
反之,当变量"username"的值改变时,输入框中的值也将更新。ng-show/ng-hideng-show和ng-hide指令用于根据条件显示或隐藏HTML元素。...-- 显示内容 -->当"isLoggedIn"为true时,相应的元素将显示出来;当为false时,元素将被隐藏。...对于数组"users"中的每个对象,ng-repeat将生成一个元素,其中包含用户的姓名。...ng-clickng-click指令用于在HTML元素上绑定点击事件。它可以调用控制器中定义的函数或表达式。...例如,下面的代码将在点击按钮时调用login()函数:ng-click="login()">登录在控制器中定义名为login()的函数,当用户点击按钮时,该函数将被执行
提高网页加载速度 --> 1.1....-- 常用方式 --> 当网页加载完毕,AngularJS 自动开启。 2....="i in names"> { { i.name + "," + i.country }} 3.3. ng-app指令 在网页加载完毕时自动初始化一个...使用Scope 在AngularJS创建控制器时,可以将$scope对象当作一个参数传递 {...AngularJS事件 12.1. ng-click 点击事件 ng-click="addCount
控制器和指令都有作用域的引用,但并不是彼此引用。这项安排就从指令(就是DOM)隔离了控制器。...当回调执行完成后,浏览器重新渲染dom,然后返回继续等待更多的事件。 当浏览器调用的js代码不在angular执行上下文时,意味着angular无法发现模型的修改。...监听指令,像是ng-click,注册一个监听器在dom上。当dom的监听器触发后,这个指令将执行相关的表达式并且更新视图使用$apply方法。...无论如何,一些指令,像是ng-controller和ng-repeat,创建子作用域并且将子作用域赋予相对应的dom元素上。...一个显式的调用只有在实现自定义事件的会调用使用,或在工作在第三方的库的回调中。 进入Angular执行上下文通过调用scope.
本篇我将搜罗模板中的常用指令一一测试,了解其使用方法,有点像背单词的感觉,会比较枯燥。...四、事件绑定相关 事件绑定是javascrpt中比较重要的一部分内容,ng对此也做了详细的封装,正如我们之前使用过的ng-click一样,其他事件的指令如下: ng-change ng-dblclick...scope.change = function($event){ alert($event.target); //…………………… } 在模板中可以用变量$event将事件对象传递到...因为我编写的是单页面应用,页面只会在加载index.html的时候出这个问题,只需在index.html中的模板中换成ng-bind就行。其他的模板是我们动态加载的,就可以放心使用{{}}了。...本着不急于求成的原则我还是决定先把这些东西都试一试吧,所以就有详有略的介绍了以上内容,必要的时候也可以当一个备忘。
ng-click 是最常用的单击事件指令,再点击时触发控制器的某个方法 1.3.6 循环数组 入门小Demo-6 循环数据 <script...//打印错误消息 alert(response.message); } }); } 6.3.2 html代码 绑定表单元素,我们用ng-model指令,绑定按钮的单击事件我们用...$scope.entity=response; }); } 修改列表中的“修改”按钮,调用此方法执行查询实体的操作 ng-click="getById(entity.id...在点击删除按钮时需要用到这个存储了ID的数组。...同时增加点击事件,调用搜索方法。
class而不是ng-class,这是不可以对换的,官方的文档也未做说明,姑且认为这是ng的语法规则吧。...四、事件绑定相关 事件绑定是javascrpt中比较重要的一部分内容,ng对此也做了详细的封装,正如我们之前使用过的ng-click一样,其他事件的指令如下: 事件绑定指令的取值为函数,并且需要加上括号...scope.change = function($event){ alert($event.target); //…………………… } 在模板中可以用变量$event将事件对象传递到...但既然已经存在了,我们不妨往合理的方向上想一想,或许ng的设计者压根就不想让模板成为单纯的视图层,本来就是想增强HTML,让它有一点业务能力。...因为我编写的是单页面应用,页面只会在加载index.html的时候出这个问题,只需在index.html中的模板中换成ng-bind就行。其他的模板是我们动态加载的,就可以放心使用{{}}了。
其依赖的对象由框架来自动创建并注入进来,其实就是最少知识法则;模块中所有的service和provider两类对象,都可以根据形参名称实现DI .控制器就是通过依赖注入的方式实现对服务的调用 模块化设计...ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序。....同时也是依赖注入的一种体现 事件指令 入门小Demo-5 事件指令x:y:ng-click...="add()">运算结果:{{z}} 运行结果: ng-click 是最常用的单击事件指令,在点击时触发控制器的某个方法 循环数组 <head
AngularJS四大特效 MVC模式、模块化设计、自动化双向数据绑定、依赖注入 如果了解了后端开发知识,想必对这些词汇不会陌生,AngularJS融合了后端开发的一些思想,虽然身为前端框架,但与jQuery...双击打开这个html文件,会发现页面显示的是200,如果不加载ng-app指令,页面显示的则是{% raw %}{{100+100}}{% endraw %}。...="add()">运算 结果:{{z}} ng-click表示事件指令,类似于js里的绑定事件的用法。...首先建立一个demo-8.html文件,将页面和angular.min.js一起放置到web项目的webapp目录下。...另外可以看到,这个$http的用法和AJAX很相似,其实其内部就是封装的AJAX。 本文最后附上所有demo源码,demo-8在里边的web项目里。
页面刚加载时,由于页面绑定了advancedFilter,此时的值为undefined,因此会触发脏检查,从而触发getData()方法。 $scope....-- 该按钮对应了页面上的编辑按钮 --> <button ng-click="open(item)" class...-- 该按钮对应了页面上的单选框 --> ng-click... 当点击跳转按钮时,会触发open(item)方法,item即每个对象保存的内容。...route.current.params.id })); } } }); 触发查询 由于时间空间绑定了一个变量,在discover页,对着变量进行了$watch监视,因此当第一次创建该值时
其实,ng只有在指定事件触发后,才进入$digest cycle: DOM事件,譬如用户输入文本,点击按钮等。...(ng-click) XHR响应事件 ($http) 浏览器Location变更事件 ($location) Timer事件($timeout, $interval) 执行$digest()或$apply...如果不涉及数据变更,还可以加上第三个参数false,避免调用$apply。 对时间有要求的,第二个参数可以设置为0。...譬如一个滑动到底部加载下页的表格,一行20+个绑定, 展示个100行就超标了。...下图这个只是一个很简单的列表,还不是表格,就已经这么多个了: 但其实很多属性显示后是几乎不会变更的, 这时候就没必要双向绑定了。
控制文本输入框为只读 ng-check:控制选择框是否被选中 ng-selected:控制下拉框选中项 1.2、类布尔指令包括: ng-href 指令:与html中的href对应,其好处是当为给其赋值时...$first:当元素是遍历的第一个时值为true $middle:当元素处于第一个和后元素之间时值为true $last:当元素是遍历的后一个时值为true $even:当$index...值是偶数时值为true $odd:当$index值是奇数时值为true ng-repeat在数据列表显示中用的比较多,在实际使用中可以根据其关键字进行样式设置展示 特别说明:集合数据的开始坐标是...0,所以在处理奇偶数时要注意 来一个练习: 加载后未渲染属性而导致浏览器闪烁,ng-bind不会闪烁 ng-bind只能执行单个变量绑定 但是可以借助:ng-bind-template定义一个模板实现多变量绑定