课程表

Ember.js 基础

Ember.js 对象模型

Ember.js handlebars模板

Ember.js 路由

Ember.js 组件

Ember.js 控制器

Ember.js 模型

Ember.js 测试

工具箱
速查手册

Ember.js 调试助手

当前位置:免费教程 » JS/JS库/框架 » Ember.js

Ember不仅提供了专门用于调试Ember程序的谷歌、火狐浏览器插件Ember Inspector( 安装插件可能需要翻墙,如果你也是一个程序员我想翻墙对于你来说应该不是什么难事!!!),还提供了用于调试的helper
按照惯例,先做好准备工作,分别执行Ember CLI命令创建controllerroute和模板:

  1. ember generate controller dev-helper
  2. ember generate route dev-helper

1,日志助手{{log}}

{{log}}可以把从controllerroute类传递到页面上的值以日志的形式直接输出在浏览器的控制台上。下面代码在controller类添加测试数据。

  1. // app/controllers/dev-helper.js
  2. import Ember from 'ember';
  3. export default Ember.Controller.extend({
  4. testName: 'This is a testvalue...'
  5. });

我们可以在模板上直接显示字符串testName的值,也可以使用{{log}}助手以日志形式输出在控制台。当然你也可以直接使用{{log 'xxx'}}在控制台打印"xxxx"。第二点断点助手的示例中将为你演示{{log 'xxx'}}用法。

  1. <!-- app/templates/dev-helper.hbs -->
  2. 直接显示在页面上:{{testName}}
  3. {{log testName}}

运行http://localhost:4200/dev-helper之后我们可以在页面上看到字符串testName的值。打开谷歌或者火狐的控制台(console标签下)可以看到也打印的字符的值。比较简单我就不再截图了……

2,断点助手{{debugger}}

当你需要调试的时候,你可以在模板上需要添加断点的地方添加这个助手,运行的时候会自动停在添加这个助手的地方。

  1. {{log '这句话在断点前面'}}
  2. {{debugger}}
  3. <br>
  4. {{log '这句话在断点后面'}}

不出意外程序会停在有{{debugger}}这一行。控制台应该会打印“这句话在断点前面”。然后通过点击下一步跳过断点,然后继续打印“这句话在断点后面”。
运行结果不好截图,请读者自己试试吧!!!
当你使用了{{debugger}},并且程序停止进入debug状态的时候,你可以直接在浏览器控制台的命令行输入get('key')来获取controller设置的值。

result

在箭头所指的位置输入get('testName'),然后按enter键执行。会得到如下结果:

result

可以看到正确的获取到了前面在controller类里设置的值。 如果你不是在调试模式下输入get('testName')那么会提示如下错误。

result

你还可以在遍历助手{{each}}中使用{{debugger}},点击一次“下一步”就会执行一次循环。

首先重写route类的model回调,在里面添加测试数据。

  1. // app/routes/dev-helper.js
  2. import Ember from 'ember';
  3. export default Ember.Route.extend({
  4. model: function() {
  5. return [
  6. { id: 1, name: 'chen', age: 25 },
  7. { id: 2, name: 'ibeginner.sinaapp.com', age: 2 }
  8. ];
  9. }
  10. });

在模板的each助手中使用{{debugger}}助手。

  1. {{#each model as |item|}}
  2. {{debugger}}
  3. <li>item</li>
  4. {{/each}}

运行,浏览器自动进入debug模式(如果不能自动进入debug模式可以手动按F12进入debug)。此时你可以在浏览器控制台命令输入get('item.name')来获取本次循环对象的属性值。然后你几点“下一步”或者按F8,程序自动进入到下一次循环,然后你再输入get('item.name'),此时得到的是本次循环对象属性值。然后点击下一步或者按F8进入第三次循环,由于route类设置返回的数组只有2个元素,第三次已经没有元素。所以这次会自动退出debug模式。 如果运行正常你可会得到下图所示的输出信息。

result

在调试状态下你还可以直接在浏览器控制台命令行输入context获取上下文信息。会输出本页面所包含的所有类和属性。

result

上述介绍的就是Ember提供的调试助手的所有使用方法。在你开发Ember应用的时候应该是很有用的,特别是在each循环遍历的时候。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号