【发布时间】:2013-11-22 16:32:10
【问题描述】:
我有一个Workouts 集合,每个对象都有一个category 和一个name。在 HTML 层,我正在创建一个类别标题,然后在下面显示一个锻炼列表。
我有它的工作,但我不可能以流星和/或车把的方式来做。想想我在理解this 的上下文以及如何将数据传递到模板中遇到困难。
这是我的模板函数:
Template.categories.getCategories = ->
workouts = Workouts.find().fetch()
categories = _.map workouts, (workout) -> workout.category
_.uniq categories
Template.workouts.getWorkouts = ->
Workouts.find {category: this.toString()},
sort: ['category', 'name']
这是模板文件:
<head>
</head>
<body>
{{> categories}}
</body>
<template name="categories">
{{#each getCategories}}
<h2>{{this}}</h2>
{{> workouts}}
{{/each}}
</template>
<template name="workouts">
{{#each getWorkouts}}
<div class="workout container">
<div>
{{name}}
</div>
<div>
{{units}}
</div>
</div>
{{/each}}
</template>
在Template.categories.getCategories、this 内部是Window。但是在Template.categories.getCategories 内部,它是与categories 模板内部的this 等效的字符串对象,它是一个字符串文字。嗯?
再一次,这行得通。我得到一个类别标题,下面有一个锻炼列表,但是有什么更好的方法呢?
【问题讨论】:
标签: javascript meteor handlebars.js