我正在试图弄清楚如何从每个语句中访问值。
我的模板返回2个属性:
Template.home.submissions = function() {
return( { submissions: Submissions.find(), data: "yes"})
}
我的模板看起来像这样(使用Jade):
template(name="mine")
each submissions
span= submissions.name
这很好用。 我想从每个内部访问数据值。像这样:
template(name="mine")
each submissions
span= submissions.name
span= data
但这不起作用。如何从每个数据中访问数据?
答案 0 :(得分:0)
您需要从帮助程序返回一个数组或一个游标,以使each
正常工作。
它应该适用于此:
Template.mine.submissions = function() {
return [{ submissions: Submissions.find(), data: "yes"}];
}
答案 1 :(得分:0)
如果我理解正确,您希望在循环的每个步骤中写下提交的名称和yes
。
您可以使用以下代码实现此目的:
Template.home.submissions = function() {
var submissions = [];
_(Submissions.find().fetch(), function(sub){
sub.data = "yes";
submissions.push(sub);
})
return submissions;
}
答案 2 :(得分:0)
我假设您尝试迭代Submissions
集合,在每个元素上使用相同的data
值。
您可以使用../
语法访问父数据上下文。以下是你如何使用Spacebars(我不熟悉Jade):
<template name="mine">
{{#with submissions}}
{{! data context is now {submissions: cursor, data: "yes"} }}
{{#each submissions}} {{! iterate over previously mentioned cursor }}
{{! data context is now (an element of the Submissions collection) }}
<span>{{name}}</span>
<span>{{../data}}</span> {{! access the data property from the parent data context}}
{{/each}}
{{/with}}
</template>
我不确定../
语法是否适用于Jade,但查看mquandalle / meteor-jade代码,在解析#{ }
和{时,它们看起来像是按照Spacebars {1}}语法。因此,{{ }}
可能不起作用,span= ../data
或span #{../data}
应该有效。