一、简介

Ember.js使用Handlerbars模板库来强化应用程序的用户界面。它就像普通的HTML,但也给你嵌入表达式去改变现实的内容。

Ember使用Handlerbars并且用许多新特性去扩展它。对于描述app的用户界面来说,它可以帮你考虑Handlerbars模板作为HTML就像DSL。而且,一旦你告诉Ember.js在屏幕上呈现一个给定的模板,你不需要为了确保它保持最新去编写任何额外的代码。

二、Defining Templates

你需要做的第一件事就是改变应用程序的模板(application template),它是当app加载的时候自动创建的。

下一步,你可以在app/templates文件夹中定义模板。记得默认的命名约定,一个路由route会渲染一个和它名字一样的模板。

app/templates/kittens.hbs

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

如果你想创建一个模板,在网站的许多区域是共享的,你应该研究components

三、Handlerbars Expressions(表达式)

1. 每一个模板都有一个管理的controller。在这里模板可以找到它显示的属性。

你可以用一个大括号中的属性名来显示控制器controller的属性,像这样:

Hello, <strong>{{firstName}} {{lastName}}</strong>!
  • 这将从controller中查找firstNamelastName属性,把它们插入到模板中描述的HTML中,然后把它们放入DOM。

2. 默认,最顶层的应用程序模板绑定到application controller。注意,默认情况下这个文件是不显示的,因为它是由Ember CLI幕后创建的。

要自定义controller的话,创建下面的文件:

app/controllers/application.js

export default Ember.Controller.extend({
firstName: "Trek",
lastName: "Glowacki"
});

上面的templatecontroller竟会组合在一其被渲染成下面的HTML:

Hello, <strong>Trek Glowacki</strong>!

3. 这些表达式有意的被绑定。那意味着如果templates使用的值发生改变,HTML会被自动更新。

4. 随着你应用程序的增大,将会有许多的templates,每一个都绑定到不同的controller

3.1 Templates -- Handlerbars Basics(Handlerbars基础知识)的更多相关文章

  1. java基础知识 多线程

    package org.base.practise9; import org.junit.Test; import java.awt.event.WindowAdapter; import java. ...

  2. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  3. 理解RxJava:(一)基础知识

    理解RxJava:(一)基础知识 本文翻译自Grokking RxJava, Part 1: The Basics,著作权归原作者danlew所有.译文由JohnTsai翻译.转载请注明出处,并保留此 ...

  4. Java基础知识➣环境搭建与类型整理(一)

    概述 公司业务需要,产品既要有.NET又需要Java,没得选择,只能业余时间学习Java,整体觉得Java也.NET还是很相似的,只是语法有差别,差别也不是很大,这就将学习Java的基础知识整理下,以 ...

  5. vue基础知识之vue-resource/axios

    Vue基础知识之vue-resource和axios(三)   vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没 ...

  6. WSGI基础知识(转)

    add by zhj: WSGI全称Web Server Gateway Interface,即Web网关接口.其实它并不是OSI七层协议中的协议,它就是一个接口(即函数)而已,而WSGI规定了该接口 ...

  7. Vue基础知识之vue-resource和axios

    Vue基础知识之vue-resource和axios  原文链接:http://www.cnblogs.com/Juphy/p/7073027.html vue-resource Vue.js是数据驱 ...

  8. SWIG 3 中文手册——5. SWIG 基础知识

    目录 5 SWIG 基础知识 5.1 运行 SWIG 5.1.1 输入格式 5.1.2 SWIG 输出 5.1.3 注释 5.1.4 C 预处理器 5.1.5 SWIG 指令 5.1.6 解析限制 5 ...

  9. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

随机推荐

  1. Objective-C语法之字符串NSString

    Objective-C里核心的处理字符串的类就是NSString和 NSMutableString这两个类,这两个类完成了Objective-C中字符串大部分功能的处理.这两个类的最主要的区别是NSS ...

  2. ASP代码审计学习笔记-1.SQL注入

    ASP注入漏洞 一.SQL注入的原因 按照参数形式:数字型/字符型/搜索型 1.数字型sql查询 sql注入原因: ID=49 这类注入的参数是数字型,SQL语句原貌大致如下: id=request. ...

  3. Nginx(一)-- 初体验

    1.概念 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx提供基本http服务,可以作 ...

  4. oracle11g+win7没有listener服务

    今天在win7上面安装oracle11g的时候,配置了listener后,lsnrctl start报错. 查看服务,也没有发现listener服务. 各位有没有遇见过这个情况啊!!!!!

  5. 时序数据库技术体系 – InfluxDB 多维查询之倒排索引

    本文转自: http://hbasefly.com/2018/02/09/timeseries-database-5/ 在时序数据库概述一文中,笔者提到时序数据库的基础技术栈主要包括高吞吐写入实现.数 ...

  6. System.Net.WebException: The operation has timed out at System.Net.HttpWebRequest.GetResponse()

    System.Net.WebException: The operation has timed out  at System.Net.HttpWebRequest.GetResponse() 在请求 ...

  7. 【顽固BUG】Visual Studio 2015 + TestDriven.NET-3.8.2860_Personal_Beta 调用的目标发生了异常。

    前言 突然怎么弄也无法断点调试了 输出如下: ------ Test started: Assembly: Server5.V2.dll ------ 调用的目标发生了异常. 而且网站运行提示: -- ...

  8. 【PHP】 解决报错:Error: php71w-common conflicts with php-common-5.4.16-43.el7_4.x86_64

    背景: 手动安装的PHP7 环境 问题:在安装扩展的时候.无论输入 php-*  来安装任何扩展.都会报错 Error: php71w-common conflicts with php-common ...

  9. 小程序:将gbk转为utf-8

    是否有过写了半天代码,发现竟然用的GBK编码,然后到主UTF-8上发现中文全部变成乱码了... 下面这个程序,只要输入src的位置,瞬间转换成utf-8 package tools; import j ...

  10. Android Fingerprint系列之google原生界面

    ENV: Anroid M 6.0 1. 录入指纹引导界面 2.指纹要求先设置密码或验证密码界面(已经添加安全密码) 3.引导用户寻找指纹传感器 4.录入指纹界面 5.指纹录入结束界面