如何从每个值中访问其他值

时间:2014-05-02 03:33:28

标签: javascript node.js meteor

我正在试图弄清楚如何从每个语句中访问值。

我的模板返回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 

但这不起作用。如何从每个数据中访问数据?

3 个答案:

答案 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= ../dataspan #{../data}应该有效。

相关问题