meteor.js 和空格键 - 在嵌套循环中传递变量
Posted
技术标签:
【中文标题】meteor.js 和空格键 - 在嵌套循环中传递变量【英文标题】:meteor.js & spacebars - passing variables in nested loop 【发布时间】:2016-03-13 20:04:11 【问题描述】:上下文
我正在尝试使用 Handlebars 循环遍历事件,然后嵌套循环遍历图像。我只需要选择与事件循环当前正在进行的事件相对应的图像。
问题
我无法在嵌套的图像中传递事件的 _id。有解决办法吗? 我知道我可以通过帮助程序传递变量,但如果有更简单的方法会很好。
以下是目前无法使用的元代码:
//attach venue image to each venue
#each myVenues
#each myImages
#if myVenues._id == myImages._id
<img src="this.url>
/if
/each
/each
任何帮助将不胜感激!
【问题讨论】:
How can I use if condition on the meteor template?的可能重复 meteor 不再使用把手,它现在有自己的模板语言,称为空格键。你的问题很常见。请查看重复的问题。 @ChristianFritz - 谢谢,但正如我所提到的,我已经知道我可以使用助手 - 我正在寻找类似的东西 - handlebarsjs.com/block_helpers.html#block-params 那么您仍在查看错误的文档。您可能想阅读空格键文档:github.com/meteor/meteor/blob/master/packages/spacebars/… 抱歉,在我看到第二条评论之前回答了你的第一条评论。现已全部解决,感谢您的帮助! 【参考方案1】:最新版本的空格键支持引用父级。试试:
#each myVenues
#each myImages
#if ../_id == myImages._id
<img src="this.url>
/if
/each
/each
编辑:
Christian Fritz 指出 if 语句中的条件逻辑不适用于空格键。如果你设置了一个帮助器来评估条件逻辑,你仍然可以让它工作:
#each myVenues
#each myImages
ifequals ../_id myImages._id
<img src="this.url>
/if
/each
/each
然后在一个助手中:
Template.registerHelper('ifequals', function(a,b)
return a === b;
);
【讨论】:
祝你好运,因为我认为它不会起作用。空格键本身不支持条件中的逻辑。我想你正在寻找atmospherejs.com/ostrio/templatehelpers 你是对的,条件逻辑将失败,但是对父级的引用应该有效。如果他已经有模板助手来评估等价逻辑,那么他可以将它们都作为参数传入:ifequals ../_id myImages._id 根据 Christian 的建议,我最终添加了 ostrio 包 - 最终代码是 #if compare avenueId '===' ../_id - 完美运行。非常感谢你们的帮助,非常感谢。以上是关于meteor.js 和空格键 - 在嵌套循环中传递变量的主要内容,如果未能解决你的问题,请参考以下文章