繁体   English   中英

在Meteor中将功能范围限定为一组不同模板的任何方法?

[英]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

我具有要在onlineProductsFormphotographyServicesForm之间共享的功能,但没有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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM