【问题标题】:Context of Meteor Template FunctionsMeteor 模板函数的上下文
【发布时间】:2014-12-09 17:20:55
【问题描述】:

我有类似的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,整个事情都有效(但没有国家)。我已从控制台窗口验证数据存在于集合中。

对集合使用变换似乎只是为了添加伪属性。

我尝试将其定义为助手,但同样的事情发生了。正确的做法是什么。

【问题讨论】:

    标签: javascript templates meteor


    【解决方案1】:

    抱歉...正确的解决方案是稍微玩弄一下 Coffeescript:

    if @address.country.length > 0
      return "#{@name}, #{@address.country}"
    else
      return @name
    

    因此,传递给模板助手的集合成员是this.memberName,因此,应该是Coffeescript 中的@ 变量。直到。

    【讨论】:

      猜你喜欢
      • 2018-08-26
      • 2015-01-02
      • 2015-10-07
      • 1970-01-01
      • 2016-05-02
      • 2016-01-05
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多