Javascript 流星:共享模板

Javascript 流星:共享模板,javascript,node.js,meteor,npm,meteor-blaze,Javascript,Node.js,Meteor,Npm,Meteor Blaze,我正在使用Meteor构建一个应用程序,它的形式非常大。我使用了几乎相同的html模板两次,一次用于输入,一次用于输出,但是助手是不同的 由于两个模板很难维护,我的问题是,是否有一种方法可以共享html模板或克隆它,这样我就可以拥有相同的模板但不同的帮助程序和事件?您可以为此使用模板参数 HTML JS client/views/reusabletemplate/lib/input.js inputHelper=function (){ console.log(this.mode); /

我正在使用Meteor构建一个应用程序,它的形式非常大。我使用了几乎相同的html模板两次,一次用于输入,一次用于输出,但是助手是不同的


由于两个模板很难维护,我的问题是,是否有一种方法可以共享html模板或克隆它,这样我就可以拥有相同的模板但不同的帮助程序和事件?

您可以为此使用模板参数

HTML

JS

client/views/reusabletemplate/lib/input.js

inputHelper=function (){
  console.log(this.mode);
  // specific input code
};
outputHelper=function(){
  console.log(this.mode);
  // specific output code
};
Template.reusableTemplate.helpers({
  helper:function(){
    if(this.mode == "input"){
      inputHelper.call(this);
    }
    else{
      outputHelper.call(this);
    }
  }
});
client/views/reusabletemplate/lib/output.js

inputHelper=function (){
  console.log(this.mode);
  // specific input code
};
outputHelper=function(){
  console.log(this.mode);
  // specific output code
};
Template.reusableTemplate.helpers({
  helper:function(){
    if(this.mode == "input"){
      inputHelper.call(this);
    }
    else{
      outputHelper.call(this);
    }
  }
});
client/views/reusabletemplate/reusabletemplate.js

inputHelper=function (){
  console.log(this.mode);
  // specific input code
};
outputHelper=function(){
  console.log(this.mode);
  // specific output code
};
Template.reusableTemplate.helpers({
  helper:function(){
    if(this.mode == "input"){
      inputHelper.call(this);
    }
    else{
      outputHelper.call(this);
    }
  }
});

寻找表单的社区包,它们可能会大大简化这项任务:我已经看过了,可惜在这种情况下没有帮助。但是谢谢你的回答:)谢谢,这看起来不错!但是,这会毁了我的代码,因为我必须将两个助手函数合并为一个,渲染方法也是如此/:有什么想法吗?编辑:将代码和文件组织重构为一个更整洁的方案,这是您的想法吗?