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. 浏览器跟踪重定向地址 现在,浏 ...
 
随机推荐
- POJ 1180 Batch Scheduling
			
BTW: 刚在图书馆借了本算法艺术与信息学竞赛. 我多次有买这本书的冲动, 但每次在试看之后就放弃了, 倒不是因为书太难, 而是写的实在是太差. 大家对这本书的评价很高, 我觉得多是因为书的内容, 而 ...
 - 关于直播学习笔记-005 nginx-rtmp、sewiseplayer
			
1.视频采集推流及服务器端:nginx-rtmp-windows 2.视频播放段:sewiseplayer 3.双击nginx.exe运行nginx-rtmp-win32-master的nginx服务 ...
 - Linux ulimit 命令
			
ulimit命令用来限制系统用户对 shell 资源的访问,常见用法如下: [root@localhost ~]$ ulimit -a # 查看当前所有的资源限制 [root@localhost ~] ...
 - /etc/logrotate.conf
			
/etc/logrotate.conf 是 Logrotate 工具的一个配置文件,这个工具用来自动切割系统日志,Logrotate 是基于 cron 来运行的,如下: [root@localhost ...
 - 安装配置博客WordPress
			
1.下载并解压WordPress cd /usr/local/src wget https://cn.wordpress.org/wordpress-4.4.2-zh_CN.tar.gztar zcv ...
 - 检测你的php代码执行效率
			
在写程序的时候,经常会为是改用empty()还是isset好,或是用单引号还是双引号来显示连接字符串而发出疑问,现在好了.我们其实可以通过程序很科学的得出精确的答案.知道我们的程序到底怎样写效率会更好 ...
 - Mybaits中的update
			
<update id="update" parameterType="Currency"> UPDATE YZ_SECURITIES_CURRENC ...
 - K-mean和k-mean++
			
(1)k-mean聚类 k-mean聚类比较容易理解就是一个计算距离,找中心点,计算距离,找中心点反复迭代的过程, 给定样本集D={x1,x2,...,xm},k均值算法针对聚类所得簇划分C={C1, ...
 - Delphi使用ADO连接网络数据库,断网后重连问题
			
原始文章: https://blog.csdn.net/blog_jihq/article/details/11737699# 使用TADOConnection对象连接网络数据库(以MySQL为例), ...
 - 【BZOJ4003】[JLOI2015]城池攻占 可并堆
			
[BZOJ4003][JLOI2015]城池攻占 Description 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池. 这 n 个城池用 1 到 n 的整数表示.除 1 号 ...