Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Meteor.JS中共享事件的最佳方式_Meteor_Meteor Blaze - Fatal编程技术网

在Meteor.JS中共享事件的最佳方式

在Meteor.JS中共享事件的最佳方式,meteor,meteor-blaze,Meteor,Meteor Blaze,在Meteor中共享事件处理程序的最佳方式是什么 是不是有一个大模板覆盖在模板上?还是通过创建一个JS类并从tehre获取事件处理程序 i、 e。 选择1 有些类只调用事件和模板 这两种方法中哪一种是最好的?还有比这更好的方法吗?我在我的应用程序中使用了3种不同的模式 第一个:在外部模板上定义事件处理程序,例如在我的默认布局模板中。这特别适合于经常重复使用的键盘事件。 第二个:定义一个小模板,其中包含我需要的对象和事件,并在任何地方重用它,例如按钮 在容器模板上使用和定义事件。这本质上是第一个模

在Meteor中共享事件处理程序的最佳方式是什么

是不是有一个大模板覆盖在模板上?还是通过创建一个JS类并从tehre获取事件处理程序

i、 e。 选择1

有些类只调用事件和模板


这两种方法中哪一种是最好的?还有比这更好的方法吗?

我在我的应用程序中使用了3种不同的模式

第一个:在外部模板上定义事件处理程序,例如在我的默认布局模板中。这特别适合于经常重复使用的键盘事件。 第二个:定义一个小模板,其中包含我需要的对象和事件,并在任何地方重用它,例如按钮 在容器模板上使用和定义事件。这本质上是第一个模式的更灵活版本。 我想说动态模板:

然后为包装模板制作事件映射

Template.wrap.events({
  'click .element-in-either-template': function () {
    console.log('okay');
  }
});

尝试使用Template.registerHelper函数定义全局模板帮助器。
Template.tmpl1.events({
  event1: function(e,t){ some_class.event1(e,t) }
})
Template.tmpl2.events({
  event1: function(e,t){ some_class.event1(e,t) }
})
<template name="wrap">
    {{> Template.dynamic template=yourTemplate }}
</template>
Router.map(function () {

  this.route('myEventTest', {
    path: '/route-1',
    template: 'wrap',
    data: function () {
      return {
        yourTemplate: 'tmpl1' // the template you want changed
      };
    }
  });

  this.route('myEventTest', {
    path: '/route-2',
    template: 'wrap',
    data: function () {
      return {
        yourTemplate: 'tmpl2'
      };
    }
  });

});
Template.wrap.events({
  'click .element-in-either-template': function () {
    console.log('okay');
  }
});