Meteor JS中代码的重复使用部分

Reused part of code in Meteor JS

本文关键字:用部 JS 代码 Meteor      更新时间:2023-09-26

我有这个代码

Template['product'].helpers( 'variant': -> variant_value = Session.get('variant') if variant_value return variant_value else Session.set('variant',@lowest_variant()) 'isSelected': -> if @variant() == opt1_name return true else return false 我想在isSelected中使用变体方法。上面的代码不起作用。你知道如何创建一个函数,以便它可以用于不同的辅助方法吗?

但是如何创建一个函数,以便将其用于不同的辅助方法只需创建一个全局函数

我不是咖啡剧本方面的专家。

但在流星上,这就是文档中全局变量的情况。

根据通常的CoffeeScript约定,CoffeeSript变量为默认情况下文件的作用域(仅在.coffee文件中可见定义。)

因此,您可以在使用该助手的.coffee文件的顶层创建该函数。

javascript

 variant = function(){  
     //code to be used on diferents helpers
    }

您无法访问私有助手方法的原因是它尚未创建。它被定义为对象的一部分,该对象在定义后返回给helpers()方法。

必须在该方法之外声明:

variant = () ->
  variant_value = Session.get('variant')
  if variant_value
    return variant_value
  else
    Session.set('variant',@lowest_variant())
Template['product'].helpers(
  'isSelected': ->
    if variant() == opt1_name
      return true
    else return false        

实际上,我认为您正在寻找Template.registerHelper()函数

Template.registerHelper 'isSelected', ->
   return if variant() == opt1_name then true else false

请参阅此处的文档

UPD:要在CoffeeScript中创建全局Meteor的应用程序var,只需通过@:将其绑定到全局范围即可

@myGlobalVar = {}

或者将其绑定到Meteor对象:

Meteor.myGlobalVar = {}