Как создать глобальную функцию в шаблоне метеор
Как создать функцию для всех шаблонов в метеоре?
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
}
});
Ответы
Ответ 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();
}
});
Возможно, это не совсем то, чего вы хотите, потому что в этом случае вы должны добавить импорт в любой шаблон, но избегать глобальных переменных является довольно хорошей практикой и, вероятно, вы не хотите использовать ту же функцию в любой.