3.4 Templates -- Displaying A List of Items(展示一个集合)

一、 概述

1. example

如果你需要遍历一个对象集合,使用Handlebars的{{#each}}

<ul>
  {{#each people key="id" as |person|}}
    <li>Hello, {{person.name}}!</li>
  {{/each}}
</ul>

上面的例子将会输出这样的结果:

<ul>
  <li>Hello, Yehuda!</li>
  <li>Hello, Tom!</li>
  <li>Hello, Trek!</li>
</ul>

2. {{#each}}是绑定的。如果你的app添加了一条新数据,或者删除了一条,不用重写任何代码DOM就会被更新。

注意[].push()不会更新{{each}}

添加多条目需要使用[].pushObject,这关系到Ember可变数组的方法,所以Ember可以监视这个改变。

二、Specifying Keys(指定键)

如果数组使用{{each}}遍历,key选项被用来告诉Ember怎样判断在渲染之间已经改变。

通过帮助Ember检测数组中一些相同的元素,DOM元素可以被重用,这样大大提高了渲染速度和防止一些意外的结果。

例如,{{each}}它的key设置为id: handlebars {{#each people key="id" as |person|}} {{/each}},当这个{{#each}}被重新渲染的时候,Ember将基于每个项目的id属性匹配先前被呈现的项目(排序生成的DOM元素)。

这里投一些特殊的值:

  • key:* @index指的是数组中该item的index。
  • * @item指的是数组中该item自己。这仅仅可以被用作string或者numbers数组。
  • * @guid指的为每一个对象生成唯一的标识符(Ember.guidFor)。

三、 Empty Lists(空集合)

{{#each}}还可以匹配{{else}}

example: 如果集合是空的内容将会被渲染。

{{#each people key="id" as |person|}}
  Hello, {{person.name}}!
{{else}}
  Sorry, nobody is here.
{{/each}}
时间: 2024-10-11 04:01:31

3.4 Templates -- Displaying A List of Items(展示一个集合)的相关文章

不用asp.net MVC,用WebForm照样可以实现MVC

在<避开WebForm天坑,拥抱ASP.Net MVC吧>这篇博客中我讲到了ASP.net WebForm由于一些先天的“诱导犯罪”的缺陷,现在用ASP.net MVC的公司越来越多.但是根据填写了"ASP.net MVC的免费网络公开课"调查表的统计,我们发现有一大半的人还没有使用过ASP.Net MVC,而没用过ASP.net MVC的人中竟然有很多人人是因为感觉ASP.Net 难.没时间学.调查表分析数据如下: 初看ASP.net确实难:复杂的路由机制. ViewDa

[译] ASP.NET 生命周期 – ASP.NET 上下文对象(五)

ASP.NET 上下文对象 ASP.NET 提供了一系列对象用来给当前请求,将要返回到客户端的响应,以及 Web 应用本身提供上下文信息.间接的,这些上下文对象也可以用来回去核心 ASP.NET 框架特性. 上下文对象提供了应用,当前请求,与当前请求相关联的响应的信息.也提供了对多数重要的 ASP.NET 平台服务的访问,比如安全与状态数据.我们可以在 MVC 框架的 controllers 和 views 中使用上下文对象来根据当前的请求或者应用状态数据来调整我们应用的响应.在创建模块或者处理

【转】http://www.cnblogs.com/yuzukwok/p/3884377.html

来自:http://www.cnblogs.com/yuzukwok/p/3884377.html An Introduction to Xamarin.Forms 来源:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/introduction-to-xamarin-forms/ 概览 Xamarin.Forms 是一个帮助开发者快速创建跨平台UI的框架.它为ios,Android,Windows Phone上的原

jsp页面渲染

1.jsp 1.jsp脚本和注释 1)<%java代码%> --------------内部的java代码翻译到service方法的内部 2)<%=java变量或表达式%>  ----------会被翻译成service 方法内部 out.print() 3)<%! java代码%> -----------------会被翻译成servlet 的成员的内容 jsp注释:不同的注释可见范围是不同 1)HTML注释:<!--注释内容 -->  ---------

Java EE模式和MVC

Java EE模式 什么是模式? 开发过程中总结出来的约定俗成的"套路". Java EE经历的模式 model1模式 技术组成:JSP+JavaBean model1的弊端:随着业务的复杂性,导致JSP页面比较混乱 model2模式 技术组成:JSP+Servlet+JavaBean model2的优点:使用各个技术擅长的方面 jsp:擅长页面的显示 Servlet:擅长Java业务代码 MVC:web开发的设计模式 M:Model--模型 JavaBean:封装数据 V:View-

Myeclipse Templates详解(一) —— Java模板基础

目录 Templates简介 MyEclipse自带Templates详解 新建Template 自定义Template 因为自己比较懒,尤其是对敲重复代码比较厌恶,所以经常喜欢用快捷键和模板,Myeclipse的模板功能其实很强大,好像自己只用过syso这一个,所以最近学习了一下,初次写博客,谢绝转载. 一.Templates简介 1.1 Templates基本介绍 Myeclipse模板的查看编辑入口,Window->Preferences->Java->Editor->Tem

转:解决OM的Price List输入找不到对应库存的ITEMS的问题

一,保证Item Validation Organization参数的值一致 Item Validation Organization参数的值是填库存组织,通过这个值,可以分隔OM所能使用的库存Items.假设存在一个库存组织A,你想在OM为A里面的Items作一个Price List,必须要保证以下两个值是一致,否则在OM的Price List Setup设置Product Value时会提示找不到Items.以下两个值是: 1.       定位到:NV>Order Management>

python测试开发django-2.templates模板与html页

前言 Django 中的视图的概念是一类具有相同功能和模板的网页的集合.通俗一点来说,就是你平常打开浏览器,看到浏览器窗口展示出来的页面内容,那就是视图. 前面一章通过浏览器访问http://127.0.0.1:8000能在页面上展示出hello world的纯文本内容,通常我们打开浏览器页面,展示的是一个html页面,本篇讲下如何打开html页面. 新建应用 上一篇通过"django-admin startproject helloworld"是创建项目,一个项目下可以有多个应用(a

django-2.templates模板与html页

前言 Django 中的视图的概念是一类具有相同功能和模板的网页的集合.通俗一点来说,就是你平常打开浏览器,看到浏览器窗口展示出来的页面内容,那就是视图.前面一章通过浏览器访问http://127.0.0.1:8000能在页面上展示出hello world的纯文本内容,通常我们打开浏览器页面,展示的是一个html页面,本篇讲下如何打开html页面. 新建应用 上一篇通过"django-admin startproject helloworld"是创建项目,一个项目下可以有多个应用(ap