让我们说我有多个模板:
<template name="orderForm">
{{> photographyServicesForm}}
{{> videographyServicesForm}}
{{> onlineProductsForm}}
</template>
然后是相应模板的JS文件(包括渲染,创建,帮助,事件等)。
photography_services_form.js
videography_services_form.js
online_products_form.js
order_form.js
我希望在onlineProductsForm
和photographyServicesForm
之间共享我需要的功能,而不是videographyServicesForm
。
我不想将这些函数全部放入order_form.js
文件中,因为它会变得庞大而且难以处理。我显然也不想在每个不同的模板中复制相同的函数定义。
有没有办法做到这一点,或者我是否必须将所有内容都放入order_form.js
文件中?
答案 0 :(得分:1)
创建另一个JS文件,在其中放置一些模板之间的共享函数,并在声明它们时不使用var
关键字将它们导出到全局命名空间。
lib/order_form_common.js
(使用lib文件夹前缀首先加载此文件)
sharedOnRendered = function(){};
sharedHelpers = {
helper1: function(){},
helper2: function(){}
};
sharedEvents = {
"click p": function(){},
"submit form": function(){}
};
最后,在相应的模板逻辑JS文件中使用这些共享定义。
photography_services_form.js
Template.photographyServicesForm.onRendered(sharedOnRendered);
Template.photographyServicesForm.helpers(sharedHelpers);
Template.photographyServicesForm.events(sharedEvents);