3.11 Templates --Rendering with Helpers
Ember提供几个辅助器允许你使用不同的方法渲染模板(render templates)。
一、The {{partial}} Helper
{{partial}}以呈现的模板作为参数,并在这里呈现模板。
{{partial}}不改变上下文或作用域。它简单的将给定的模板放置到当前作用域中。
app/templates/author.hbs
Written by {{author.firstName}} {{author.lastName}}
app/templates/post.hbs
<h1>{{title}}</h1>
<div>{{body}}</div>
{{partial "author"}}
输出:
<div>
<h1>Why You Should Use Ember.js</h1>
<div>Because it's awesome!</div>
Written by Yehuda Katz
</div>
二、The {{render}} Helper
1. {{render}}取两个参数:
- 第一个参数描述设定的上下文。
- 可选的第二个参数是model,如果提供了它将被传递到controller。
2. {{render}做了几件事:
- 当没有提供模型时,它会得到相应controller。
- 当提供一个模型时,它会得到一个唯一的controller。
- 使用controller命名模板。
- 设置相应controller的model。
3. 稍微修改下上面的例子:
app/templates/author.hbs
Written by {{firstName}} {{lastName}}.
Total Posts: {{postCount}}
app/templates/post.hbs
<h1>{{title}}</h1>
<div>{{body}}</div>
{{render "author" author}}
app/controllers/author.js
export default Ember.Controller.extend({
postCount: Ember.computed('model.posts.[]', function() {
return this.get('model.posts.length');
})
})
在例子中,render将会:
- 使用相应的模板(例子中默认为"author")
- 获得或者生成AuthorController的单例
- 设置AuthorController's model为传递给render的第二个参数,这里传递的是author对象。
- 使用上一步中创建的上下文在适当的位置渲染模板。
4.{{render}}和{{outlet}}的区别
{{render}}不要求一个匹配路由的存在。
{{render}}和{{outlet}}有一点类似。都告诉Ember放入页面这部分东西。
{{outlet}}:路由器确定路由,并设置适当的控制器/视图/模型。
{{render}}:你直接或者间接的指定适当的控制器/视图/模型。
注意:当没有指定model时,对同一个路由来说{{render}}不能被多次调用。
三、Comparison Table(比较表)
1. 一般的
| Helper | Template | Model | Controller |
|---|---|---|---|
{{partial}} |
Specified Template | Current Model | Current Controller |
{{render}} |
Template | Specified Model | Specified Controller |
2. 特定的
| Helper | Template | Model | Controller |
|---|---|---|---|
{{partial "author"}} |
templates/author.hbs |
models/post.js |
controllers/post.js |
{{render "author" author}} |
templates/author.hbs |
models/author.js |
controllers/author.js |
3.11 Templates --Rendering with Helpers的更多相关文章
- Professional C# 6 and .NET Core 1.0 - Chapter 41 ASP.NET MVC
What's In This Chapter? Features of ASP.NET MVC 6 Routing Creating Controllers Creating Views Valida ...
- Ember.js学习教程 -- 目录
写在前面的话: 公司的新项目需要用到Ember.js,版本为v1.13.0.由于网上关于Ember的资料非常少,所以只有硬着头皮看官网的Guides,为了加深印象和方便以后查阅就用自己拙劣的英语水平把 ...
- Handlebars.js,Json+ajax+拼html
英文版:http://handlebarsjs.com./ 原文链接:http://www.cnblogs.com/diligenceday/p/4105229.html, http://segmen ...
- Magento架构分析,Magento MVC 设计分析
Magento架构分析,Magento MVC 设计分析 分类:Magento 标签:Magento MVC.Magento架构 669人浏览 Magento 采用类似 JAVA的架构,其扩展与稳定性 ...
- WPF解析Word为图片
偶遇需要解析Word为单张图,此做 http://git.oschina.net/jiailiuyan/OfficeDecoder using System; using System.Collect ...
- Linux第二篇【系统环境、常用命令、SSH连接、安装开发环境】
系统环境 我们知道Windows的出色就在于它的图形界面那一块,而Linux对图形界面的支持并不是那么友好-其实我们在Windows下对图形界面进行的操作都是得装换成命令的方式的! 当然了,我们在Ub ...
- DirectX11 With Windows SDK--00 目录
前言 (更新于 2019/4/10) 从第一次接触DirectX 11到现在已经有将近两年的时间了.还记得前年暑假被要求学习DirectX 11,在用龙书的源码配置项目运行环境的时候都花了好几天的时间 ...
- 【转】Beginning Game Programming v2.0
Beginning Game Programming v2.0 Last Updated 8/19/18 Greetings everyone, welcome to the ground up re ...
- Browser Page Parsing Details
Browser Work: 1.输入网址. 2.浏览器查找域名的IP地址. 3. 浏览器给web服务器发送一个HTTP请求 4. 网站服务的永久重定向响应 5. 浏览器跟踪重定向地址 现在,浏 ...
随机推荐
- c#接口作为参数传递、返回
接口做为参数传递,传递的是实现了接口的对象: 接口作为类型返回,返回的是实现了接口的对象. 接口的传递与返回就是围绕着上面的两句话展开的.
- 【SSH进阶之路】Hibernate映射——一对一双向关联映射(六)
上篇博文[SSH进阶之路]Hibernate映射--一对一单向关联映射(五),我们介绍了一对一的单向关联映射,单向是指仅仅能从人(Person)这端载入身份证端(IdCard),可是反过来.不能从身份 ...
- SQLServer------如何让标识列重新开始计算
方法: DBCC CHECKIDENT (表名, RESEED, )
- laravel安装 redis 并驱动 session
1)composer 安装 redis composer require predis/predis 如果感兴趣,可以看一下这里 2)配置 redis 连接(config/database.php 配 ...
- docker中文、手册、教程
Docker资源 Docker官方英文资源: docker官网:http://www.docker.com Docker windows入门:https://docs.docker.com/windo ...
- 查看系统进程:ps
ps命令用于查看系统进程,常见用法如下: [root@localhost ~]$ ps aux # 查看所有的进程 [root@localhost ~]$ ps aux | grep nginx # ...
- 第六篇:GPU 并行优化的几种典型策略
前言 如何对现有的程序进行并行优化,是 GPU 并行编程技术最为关注的实际问题.本文将提供几种优化的思路,为程序并行优化指明道路方向. 优化前准备 首先,要明确优化的目标 - 是要将程序提速 2 倍? ...
- Android 使用GridView以表格的形式显示多张图片
GridView用于在界面上按行.列分布的方式来显示多个组件(而ListView只是以按行的方式) 课程目标 学会使用GridView制作二维布局界面(行.列分布) 数据源(集合) --> 适配 ...
- Mybatis返回map集合
<resultMap id="pieMap" type="HashMap"> <result property="value&quo ...
- 英语——'s和s'和s的区别
举个例子吧,student's 是表示学生的,名词单数形式的所有格students' 是表示学生们的,名词复数形式的所有格students 是表示学生们,名词的复数形式