[转]调试AngularJS应用
原文链接:Debugging AngularJS Apps from the Console
当我们开发AngularJS应用的时候,我们想在Chrome/FF/IE控制台调试隐藏在应用中的数据和服务的很困难的,下面是一些小技巧,可以来检测和监控正在运行的应用程序,这使我们开发、调试、修改angular应用变的较为容易。
1.Access Scopes
我们可以访问任何作用域(甚至一个独立作用域),在页面使用单行JS即可实现:
1 |
> angular.element(targetNode).scope() |
2 |
-> ChildScope {$id: "005", this: ChildScope, $$listeners: Object, $$listenerCount: Object, $parent: Scope…} |
或者一个隔离的作用域:
1 |
> angular.element(targetNode).isolateScope() |
2 |
-> Scope {$id: "009", $$childTail: ChildScope, $$childHead: ChildScope, $$prevSibling: ChildScope, $$nextSibling: Scope…} |
其中targetNode是节点Dom对象,可以使用document.getElementById(),document.querySelector()等来获取。如果你不知道querySelector方法如何使用及兼容性问题,请戳这里。
2.Inspect the Scope Tree
可以使用Chrome的AngularJS BataRang插件。

3.Grab any Services
可以通过注入服务的ngApp,或者.ng-scope类名来调用:
1 |
> angular.element(document.querySelector('html')).injector().get('MyService') |
2 |
-> Object {undo: function, redo: function, _pushAction: function, newDocument: function, init: function…} |
3 |
// Or slightly more generic |
4 |
> angular.element(document.querySelector('.ng-scope')).injector().get('MyService') |
这是我们就可以调用服务的方法了,就想我们注入了服务,我们可以调用服务的方法一样。
4.Access controller for directive
Some directives define a controller with certain additional (often
shared) functionality. To access the instance of a controller for a
given directive from the console, just use the controller() function:
在我们定义的时候,会把一些公共的功能放到控制器中,为了访问控制器的实例,我们只要使用controller()方法就可以:
1 |
> angular.element('my-pages').controller() |
2 |
-> Constructor {} |
5.Chrome Console Features
Chrome我们提供一些好的快捷方式,在控制台中debug 我们的浏览器应用,在AngularJS开发中,下面有些最好的方式:
a)$0 – $4: Access the last 5 DOM elements selected in the inspector
window. This is convenient for grabbing scopes for selected elements:
angular.element($0).scope()
b)$(selector) and $$(selector): A quick replacement for querySelector() and querySelectorAll, respectively.
[转]调试AngularJS应用的更多相关文章
- 转:在控制台中调试AngularJS应用
在控制台中调试AngularJS应用 在创建AngularJS应用时,一个很棘手的问题是如何在Chrome,Firefox,以及IE的JavaScript控制台中访问深藏在应用中的数据和服务.本文将会 ...
- 3、调试AngularJs
1.获取Angular元素: angular.element(document.querySelector('html')); a.ele.scope() 提取它的$scope对象 b.ele.co ...
- AngularJS学习笔记
一.初识AngularJS:1.Angularjs通过创建实时模板来代替视图,而不是将数据合并进模板后更新DOM,任何一个独立视图组件中的值都是动态替换的. 二.数据绑定和第一个AngularJS W ...
- 使用 AngularJS 开发一个大规模的单页应用(SPA)
本文的目标是基于单页面应用程序开发出拥有数百页的内容,包括认证,授权,会话状态等功能,可以支持上千个用户的企业级应用. 下载源代码 介绍 (SPA)这样一个名字里面蕴含着什么呢? 如果你是经典的S ...
- 前端MVC学习总结(三)——AngularJS服务、路由、内置API、jQueryLite
一.服务 AngularJS功能最基本的组件之一是服务(Service).服务为你的应用提供基于任务的功能.服务可以被视为重复使用的执行一个或多个相关任务的代码块. AngularJS服务是单例对象, ...
- 前端MVC学习笔记(三)——AngularJS服务、路由、内置API、jQueryLite
一.服务 AngularJS功能最基本的组件之一是服务(Service).服务为你的应用提供基于任务的功能.服务可以被视为重复使用的执行一个或多个相关任务的代码块. AngularJS服务是单例对象, ...
- angularjs杂谈
1.MVVM的看法:我给view里面各种控件也定义一个对应的数据对象,这样,只要修改这个数据对象,view里面显示的内容就自动跟着刷新,而在view里做了任何操作,这个数据对象也跟着自动更新. Vie ...
- 《AngularJS学习整理》系列分享专栏
<AngularJS学习整理>系列分享专栏 <AngularJS学习整理>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/re ...
- Angularjs可以查看scope的插件AngularJS Batarang
AngularJS Batarang是一个显示AngularJS的scope 层次的Chrome插件,有效的快速查看一个page 中有多少Scope能够帮助我们快速方便调试AngularJS程序. 插 ...
随机推荐
- WPF 自定义事件
1.可传参数 namespace DrugInfo { public class ChooseDrugRoutedEventArgs : RoutedEventArgs { public Choose ...
- Mysql 替换字段的一部分内容
UPDATE 表名 SET 字段名= REPLACE( 替换前的字段值, '替换前关键字', '替换后关键字' ) WHERE 字段名 REGEXP "替换前的字段值"; 例子: ...
- [转] [Java] 知乎下巴第5集:使用HttpClient工具包和宽度爬虫
原文地址:http://blog.csdn.net/pleasecallmewhy/article/details/18010015 下载地址:https://code.csdn.net/wxg694 ...
- poj3073
比赛状态堪忧,笑看自己找不着北.. 把心态放好吧- - 反正窝从一開始就仅仅是为了多学习才上道的 至少已经从学习和智商上给窝带来了一些帮助 智商带不动,好辛苦----(>_<)---- 说 ...
- C语言 · 分苹果
算法提高 分苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1..N.有M个老师,每次第i个老师会给第Li个到第R ...
- mac键盘图表大全
Mac键盘图标与对应快捷按键 ⌘——Command () ⌃ ——Control ⌥——Option (alt) ⇧——Shift ⇪——Caps Lock fn——功能键就是fn *.m*.h切换 ...
- java读取配置文件内容
利用com.typesafe.config包实现 <dependency> <groupId>com.typesafe</groupId> <artifact ...
- MFC函数——CWnd::OnEraseBkgnd
CWnd::OnEraseBkgnd afx_msg BOOL OnEraseBkgnd( CDC* pDC ); 返回值: 如果它擦除了背景,则返回非零值:否则返回0. 参数: pDC 指定了设备环 ...
- Matlab查看数值不用科学计数法显示
如图: 运行结果显示的是科学计数法的数据 输入命令“format long g” --> Enter --> 输入需要转换的数据 即可显示.
- jQuery&CSS 顶部和底部固定浮动工具栏 兼容IE6
http://www.cnblogs.com/lhj588/archive/2013/04/02/2994639.html —————————————————————————————————————— ...