×

EmberJS 教程

EmberJS 概述EmberJS 环境配置EmberJS 应用EmberJS 对象模型EmberJS 模板EmberJS 路由器EmberJS 组件EmberJS 模型EmberJS 视图EmberJS 控制器EmberJS 测试EmberJS 指定查询参数

Ember 对象模型

Ember 类的定义 初始化 继承Ember 类的扩展Ember 计算属性Ember 观察者Ember 数据绑定Ember 枚举Ember 第一章对象模型小结

Ember handlebars模板

Ember handlebars基础Ember handlebars条件表达式Ember handlebars遍历标签Ember handlebars显示对象键Ember handlebars属性绑定Ember {{link-to}} 助手Ember 路由 模板执行渲染顺序Ember {{action}} 助手Ember 表单元素Ember 调试助手Ember 工具类的助手Ember 第二章模板小结

Ember 路由

Ember 路由定义Ember 指定与路由关联的模型Ember 模板渲染Ember 路由重定向Ember 路由终止挑战和激活Ember loading error子路由Ember 查询参数Ember 异步路由

Ember 组件

Ember 组件定义Ember 属性传递Ember 包裹内容自定义包裹组件的HTML标签Ember 处理事件Ember action触发变化

Ember 控制器

Ember 控制器Ember 管理控制器的依赖关系

Ember 模型

Ember model简介Ember 定义模型Ember 记录查询Ember 新建、更新、删除记录Ember 设置记录到StoreEmber model的关联关系处理Ember 元数据Ember 自定义适配器Ember 自定义序列号器

Ember 测试

Ember 测试简介Ember 验收测试Ember 单元测试

Ember 调试助手


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

ember generate controller dev-helper
ember generate route dev-helper

1,日志助手{{log}}

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

// app/controllers/dev-helper.js

import Ember from 'ember';

export default Ember.Controller.extend({
    testName: 'This is a testvalue...'
});

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


直接显示在页面上:{{testName}}
{{log testName}}

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

2,断点助手{{debugger}}

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

{{log '这句话在断点前面'}}
{{debugger}}

{{log '这句话在断点后面'}}

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

result

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

result

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

result

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

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

//  app/routes/dev-helper.js

import Ember from 'ember';

export default Ember.Route.extend({
    model: function() {
        return [
            { id: 1, name: 'chen', age: 25 },
            { id: 2, name: 'ibeginner.sinaapp.com', age: 2 }
        ];
    }
});

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

{{#each model as |item|}}
    {{debugger}}
    
  • item
  • {{/each}}

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

    result

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

    result

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


    分类导航

    关注微信下载离线手册

    bootwiki移动版 bootwiki
    (群号:472910771)