如何在流星模板中创建全局函数

Posted

技术标签:

【中文标题】如何在流星模板中创建全局函数【英文标题】:how to create a global function in meteor template 【发布时间】:2015-06-04 13:17:02 【问题描述】:

如何为流星中的所有模板创建一个函数?

index.js

// Some function
function somefunction()
  return true;

Test1.js

Template.Test1.events(
  'click button' : function (event, template)
    //call somefunction
  
);

Test2.js

Template.Test2.events(
  'click button' : function (event, template)
    //call some function
  
);

【问题讨论】:

Global function for Meteor template helper的可能重复 【参考方案1】:

您需要使您的函数成为一个全局标识符,以便能够跨多个文件调用它:

index.js

// Some function
somefunction = function()
  return true;
;

在 Meteor 中,变量默认是文件范围的,如果你想将标识符导出到全局命名空间以在你的项目中重用它们,你需要使用这个语法:

myVar = "myValue";

在 JS 中,函数是可以存储在常规变量中的字面量,因此语法如下:

myFunc = function()...;

【讨论】:

【参考方案2】:

如果您不想乱扔全局名称空间,您可以创建单独的文件:

导入/函数/somefunction.js

export function somefunction(a,b) 
    return a+b;

并在模板的逻辑中导入并以这种方式使用:

客户端/calculations.js

import  somefunction  from '../imports/functions/somefunction.js'

Template.calculations.events(
    'click button' : function (event, template)
        somefunction(); 
    
);

也许这不是你想要的,因为在这种情况下你应该在任何模板中附加导入,但避免全局变量是相当好的做法,并且可能你不想在 任何模板。

【讨论】:

【参考方案3】:

它不需要位于代码的任何特定部分。如果它在另一个文件中,对于全局函数,即 global.js,只需从模板 .js 文件中导入它并照常调用它。

【讨论】:

以上是关于如何在流星模板中创建全局函数的主要内容,如果未能解决你的问题,请参考以下文章

我的全局变量在流星中看不到

是否可以将在用户定义的函数中创建的数据表放在全局环境中?

如何在 Erlang 中创建全局变量

在函数中创建值,然后将指针保存在全局指针数组中的值上

在 Tkinter Python 中创建全局画布

全局助手正在覆盖流星车把模板中的本地上下文