[英]Any way to scope functions to a group of different templates in Meteor?
假设我有多个模板:
<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
文件中?
创建另一个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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.