codecamp

Ember handlebars遍历标签

采用与上一篇文章一样的方法,使用 ember generate route handlebars-each 命令创建了一个路由文件和一个对应的模板文件。 这一篇将为你介绍遍历标签,数组的遍历几乎在任何的常用的开发语言中都能看到,也是使用非常广泛的一个功能。下面我将为大家介绍handlebars的遍历标签,其使用方式与EL表达式几乎是一样的。我想你看一遍下来肯定也能明白了……废话少说,下面直接上演示代码吧!!

//  app/routes/handlebars.js
import Ember from 'ember';
/**
 * 定义一个用于测试的对象数组
 */
export default Ember.Route.extend({
    //  重写model回调函数,初始化测试数据
    model: function() {
        return [
            Ember.Object.create({ name: 'chen', age: 25}),
            Ember.Object.create({ name: 'i2cao.xyz', age: 0.2}),
            Ember.Object.create({ name: 'ibeginner.sinaapp.com', age: 1}),
            Ember.Object.create({ name: 'ubuntuvim.xyz', age: 3})
        ];
    }
});

如上述所示,在route类里构建了一个用于测试的对象数组,每个对象有2个属性(nameage)。 下面是显示数据的模板:





{{! 遍历在route里设置的对象数组 }}
<ul>
    {{#each model as |item|}}
        <li>Hello everyone, My name is {{item.name}} and {{item.age}} year old.</li>
    {{/each}}
</ul>

有没有似曾相似的感觉呢!!跟EL表达式的forEach标签几乎是一样的。不出意外你应该可以看到如下的结果。

run result

提醒:记得此时运行的URL是刚刚新建的route。 操作数组的时候注意使用官方建议的方法(如,新增使用pushObject而不是push),请看前面的文章

1,访问数组下标

有些情况我们可能需要获取数组的下标,比如有些时候可能会下标作为数据的序号。请看下面的演示:






{{! 遍历在route里设置的对象数组 }}
Ember handlebars条件表达式
Ember handlebars显示对象的键
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }