×

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 handlebars基础


Ember采用handlebars模板库作为应用的view层。Handlebars模板与普通的HTML非常相似。但是相比普通的HTML而言handlebars提供了非常丰富的表达式。 Ember采用handlebars模板并且扩展了很多功能,让你使用handlebars就像使用HTML一样简单。

Ember采用handlebars模板库作为应用程序的view层。Handlebars模板与普通的HTML非常相似。但是相比普通的HTML而言handlebars提供了非常丰富的Ember表达式。

       Ember采用handlebars模板并且扩展了很多功能,让你使用handlebars就像使用HTML一样简单。你设置可以指定某个模板显示你的应用程序界面,并且还不需要编写更新界面显示值的代码,Ember会自动为你更新。

       在介绍模板之前先介绍一个非常有用、强大的工具 Ember CLI,使用这个工具可以自动生成Ember的代码,甚至可以帮你构建一个新的Ember项目,为你省去很多重复的劳动。有关它的详细介绍请看官网,上面有非常详细的教程,或者你可以使用命令:ember –help 查看它的帮助文档,所涉及的插件请自行安装,如有不明白的可以联系我。下面我将使用这个工具新建一个Ember项目,并运行它。

1,Ember CLI 工具

新建项目命令:

ember new chapter2_tempalte

进入项目目录并启动服务器:

cd chapter2_template

ember server

运行项目,浏览器打开这个链接:http://localhost:4200/

如果你能看到如下信息说明安装成功了。

blob.png

如果项目创建成功你可以继续往下看,如果创建不成功请重试,因为后面的代码都基于这个项目来演示的!!!对于生成的每个文件和目录请你看官网文档,上面会有非常详细的说明。为了方便懒人在此就简单介绍其中几个很重要的目录:

目录

说明

app

项目的主要代码都是放在这个目录下

app/controllers

存放C(MVC)层(controller)的代码文件

app/helpers

存放自定义的helper代码文件

app/models

存放M(MVC)层(model)代码文件

app/routes

存放项目路由设置代码文件

app/templates

存放项目模板代码文件

bower_components

第三方插件库

tests

单元测试文件

vendor

不是使用npm和bower安装的第三方插件库

ember-cli-build.js

设置构建规范

dist

存放项目静态资源

       上述这些文件或者目录是后面开发过程经常会用到,只要你是使用ember new appName命令生成的项目都会包括上述这些目录或者文件。其中最重要的就是app目录下的文件、目录了,从app里面的目录结果你就可以很清楚的看到这是个MVC框架的项目。Ember之所以能找到controller对应的template也是根据目录和文件的名称找到的,Ember是有自己的一套命名规则的,详情请看官方文档


模板定义

创建一个模板命令ember g template application

由于这个模板在创建项目的时候就已经有了,所以会提示你是否覆盖原来的文件,你可以选择覆盖或者不覆盖都行。


<h1>Kittens</h1>
<p>
Kittens are the cutest!!
</p>

注意代码中的第一句注释的内容表明了这个文件的位置已经文件名称,后面的代码片段也会采用这种方式标注。如果没有特别的说明第一句代码都是注释文件的路径及其名称。

上述就是一个模板,非常简单的模板,只有一个h1和p标签,当你保存这个文件的时候Ember CLI会自动帮你刷新页面,不需要你手动去刷新!此时你的浏览器页面应该会看到如下信息:

run result

那么恭喜你,模板定义成功了,至于为什么执行http://localhost:4200就直接显示到这里等你慢慢学到controllerroute的时候自然会明白,你就当application.hbs是一个默认的首页,这样你应该明白了吧!

handlbars表达式

每一个模板都会有一个与之关联的controller类、route类、model类(当然这些类是不是必须有的)。这就是模板能显示表达式的值的原因,你可以在controller类中设置模板中表达式显示的值,就像java web开发中在servlet或者Action调用request.setAttribute()方法设置某个属性一样。比如下面的模板代码:


<h2 id="title">Welcome to Ember</h2>

Hello, <strong>{{firstName}} {{lastName}}</strong>!
<br>
My email is <b>{{email}}</b>

下面我们创建一个controller。这次我们用Ember CLI的命令创建: ember generate controller application,这句命令表示会创建一个controller并且名称是application,然后我们会得到如下几个文件:

  1. app/controllers/application.js --controller本身
  2. tests/unit/controllers/application-test.js --controller对应的单元测试文件

打开你的文件目录,是不是可以在app/controllers下面看到了! 现在为了演示表达式我们在controller里添加一些代码:

// app/controllers/application.js

import Ember from 'ember';

/**
 * Ember会根据命名规则自动找到templates/application.hbs这个模板,
 * @type {hash} 需要设置的hash对象
 */
export default Ember.Controller.extend({
    //  设置两个属性
    firstName: 'chen',
    lastName: 'ubuntuvim',
    email: 'chendequanroob@gmail.com'
});

然后修改显示的模板如下:


<h2 id="title">Welcome to Ember</h2>

Hello, <strong>{{firstName}} {{lastName}}</strong>!
<br>
My email is <b>{{email}}</b>

保存,然后页面会自动刷新(Ember CLI会自动检测文件是否改变,然后重新编译项目),我们可以看到在controller设置的值,可以直接在模板上显示了。

run result

这个就是表达式的绑定,后面你会学习到更多更有趣也更复杂的handlebasr表达式。 随着应用程序的规模不断扩大,会有更多的模板和与之关联的控制器。并且有时候一个模板还可以对应这多个控制器。也就是说模板上表达式的值可能有多个controller控制。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)