我有html喜欢:
<template name="chargers">
{{#each list}}
{{> charger}}
{{/each}}
</template>
<template name="charger">
<p>
{{full_name}}
</p>
</template>
有一个名为Chargers
的流星集合,而chargers
模板就可以很好地迭代它。但是,该集合没有full_name
属性。这是通过连接name
属性和address.country
属性来计算的。
在我看来,有些咖啡脚本如:
Template.charger.full_name = ->
console.log "full name of #{self} is #{name}"
# return name
if address.country.length() > 0
return "#{name}, #{address.country}"
else
return name
会起作用,但在函数的第一行中回显的self
是Window。我认为上下文将呈现Charger
对象。奇怪的是,如果我取消注释#return name
,整个过程都有效(但没有国家)。我已经从控制台窗口验证了数据是否存在于集合中。
对集合使用变换似乎只是添加伪属性的大锤子。
我尝试将其定义为帮手,但同样的事情发生了。什么是正确的方法。
答案 0 :(得分:0)
对不起......正确的解决方案涉及到了一点Coffeescript:
if @address.country.length > 0
return "#{@name}, #{@address.country}"
else
return @name
因此,传递给模板助手的集合成员是this.memberName
,因此,应该是Coffeescript中的@
变量。 TIL。