如何将代码拆分为流星模板中的函数

时间:2016-05-17 11:25:25

标签: meteor

在我的项目中,其中一个模板的onRendered方法有超过250行。代码变得越来越难以理解和不可维护(因为它的单片)并且我想将所有代码分割成函数来实现这样的事情:

Template.Products.onRendered(function () {
   initCarousels();
   const allProducts = Meteor.call('server/collections/products::getAll', product._id, (err, content) => {
      ...
   });

   const sortedProducts = sortProducts(allProducts);
   updateCarousels(sortedProducts);
   ...
   this.autorun( () => {
      this.subscribe('products');
      ...
      if (this.subscriptionsReady()) {
         ...
      }
   });
}

当然,我可以在onRendered方法中定义函数,但是在onRendered中声明它们并在同一个地方使用似乎并不是完美的方法 - 我正在搜索类似于移动函数模板甚至将它们移动到另一个文件。你能告诉我一个实现这个目标的方法吗?

1 个答案:

答案 0 :(得分:2)

是的!您可以将代码移至 lib / 目录,并使用哪个将是客户端服务器文件夹的兄弟。

 Template.registerHelpers(function_name, function());

当服务器启动时,它将首先按字母顺序加载 lib / * .js 文件,以便您可以使用客户端中的文件。