我想知道是否有办法将变量从模板传递到模板助手函数。
我有一些嵌套循环,但无法知道我正在循环哪些数据。
提前致谢
答案 0 :(得分:3)
是(http://docs.meteor.com/#/full/template_helpers):
助手可以接受位置和关键字参数:
Template.myTemplate.helpers({ displayName: function (firstName, lastName, keyword) { var prefix = keyword.hash.title ? keyword.hash.title + " " : ""; return prefix + firstName + " " + lastName; } });
然后你可以从这样的模板中调用这个助手:
{{displayName "John" "Doe" title="President"}}
如果超出此范围,您希望使用模板当前数据上下文中的数据作为助手的参数,当然,您也可以这样做。例如,如果当前数据上下文包含firstname
,lastname
和title
:
{{displayName firstname lastname title=title}}
例如,这在#each
循环中很方便。如果您不知道当前上下文中的内容,那么只需在帮助函数中使用console.log(this)
,您就可以在控制台上看到完整的数据上下文。