随笔分类 - angularJS
摘要:angular服务 服务是对公共代码的抽象,由于依赖注入的要求,服务都是单例的,这样我们才能到处注入它们,而不用去管理它们的生命周期。 angular的服务有以下几种类型: 常量(Constant): 用于声明不会被修改的值。 变量(Value): 用于声明会被修改的值。 服务(Service):
阅读全文
摘要:angular锚点服务 $anchorScroll 普通的html页面中,我们会通过在url后面添加#elementId的方式,将页面显示定位到某个元素上,也就是所谓的锚点。 但是在angular应用的页面上,页面路由的写法是#route/route,锚点会被当做一个页面路由解析过去,达不到定位的目
阅读全文
摘要:本章主要是讲指令与ngModel的交互。 在angular有一个内置指令叫ngModel,它是angular用来处理表单的最重要的指令。在源码中,页面上的model值的格式化、解析、验证都是由ngModel指令所对应的控制器ngModelController来实现的。ngModelControlle
阅读全文
摘要:一 angular的copy和extend 1.angular.extend() angular.extend():依次将第二个参数及后续的参数的第一层属性(不管是简单的属性还是对象)拷贝,赋给第一个参数的第一层属性。也就是说,如果是对象,那么引用的是同一个对象,并返回第一个参数对象。 用法1:an
阅读全文
摘要:由于浏览器加载html模板是异步加载的,如果加载大量的模板会拖慢网站的速度,这里有一个技巧,就是先缓存模板。 使用angular缓存模板主要有三种方法: 方法一:通过script标签引入 注意,这里的id只是指十几使用模板时的一个引用,而不是一个url, 模板的实际内容在script标签里。ng-t
阅读全文
摘要:什么是Directive Directive将一段html,js封装在一起,形成一个可以复用的独立个体,具有特定的功能。angularjs中的指令通常是比较小的组件,它相当于是给我们提供了一些公共的自定义的DOM元素、class属性或attr属性。除此之外,我们可以在这个基础上来操作scope,绑定
阅读全文
摘要:$watch $watch主要是用来监听一个对象,在对象发生变化时触发某个事件。 用法: 接下来讲一下这几个参数: 注意:deepWatch为布尔值,true时可以用来监测对象,false一般是用来监测个别元素。watchFn一般是在html中的ng-model标签。 举个例子: $watch默认情
阅读全文
摘要:$http服务 angular内置的$http服务简单的封装了浏览器原生的XMLHttpRequest对象,可以直接同外部进行通信。 $http服务只能接受一个参数,且该参数是一个对象,这个对象主要包含一些http请求的配置内容。如: 可以看到$http()方法返回的是一个promise对象,我们也
阅读全文
摘要:Angular异步调用 Promise和$q的用法 背景 首先说明一下promise异步调用出现的背景: javascript语言是一种单线程模式,就是说一次只能够执行一个任务,如果有多个任务的话就必须排队,后面的任务要等待前面的任务完成之后才能进行下一个任务。这种单线程模式容易造成阻塞,因为如果队
阅读全文
摘要:前言 AngularJS路由主要有内置的ngRoute和一个基于ngRoute开发的第三方路由模块ui-router,内置的ngRoute有时满足开发需求,使用ui-router可以解决很多原生ngRoute的不足。 AngularJS的路由实际上是一种纯前端的解决方案,它的本质是:当请求一个url
阅读全文
摘要:使用ng-bind-html和$sce.trustAsHtml显示有html符号的内容 angularjs的强大之处之一在于它的双向数据绑定的功能,我们通常会使用data-ng-bind或者data-ng-model来绑定数据。但是在项目中很多数据都带有各种各样的html标签,而angularjs绑
阅读全文
摘要:$location服务 angular使用内置的$location服务来监听、操作url,包括以下功能: - 获取、监听、改变地址栏的URL; - 与URL实现双向数据绑定(地址栏变动、前进后退或者点击页面的链接都会触发); - 将URL对象封装成了一套方法(protocol, host, port
阅读全文
摘要:ng-options ng-repeat的用法 工作中总会遇到关于下拉选项的一些操作,但是经常会遇到一些问题,基本上都是以下问题: - 下拉框使用ng-options和ng-repeat的区别 - 下拉框的默认选项的问题 - 下拉框的model值如何绑定 - 下拉框的禁用选项问题 - 下拉框的分组和
阅读全文
摘要:测试应用 1.测试路由 我们需要检测路由是否在运作,是否找到了,或者是404了。我们要确认路由事件触发了,预期的模板是否真的加载了。既然路由会改变页面的地址(URL)和页面内容,我们需要检测路由是否被加载了,页面是否找到了,在这中间发生了什么。 一段简单的路由代码: angular.module('
阅读全文
摘要:AngularJS测试 一 测试工具 1.NodeJS领域:Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理。Java领域:JUnit做
阅读全文
摘要:angularJS可以通过constant(name,value)和value(name,value)对于创建服务也是很重要的。 相同点是:都可以接受两个参数,name和value。 区别: 1.constant(name,value)可以将一个已经存在的变量值注册为服务,并将其注入到应用的其他部分
阅读全文
摘要:如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信。 2.通过作用域中的事件处理通信。但是这种方法有一些限制;例如,你并不能广泛的将事件传播到所有监控的作用域中。你必须选择是否与父级作用域或者子作用域通信。 $on、$emit和$broadcast使得event、
阅读全文