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
使用iron router和meteor时应该如何添加事件?_Meteor_Iron Router - Fatal编程技术网

使用iron router和meteor时应该如何添加事件?

使用iron router和meteor时应该如何添加事件?,meteor,iron-router,Meteor,Iron Router,在使用iron router之前,我使用以下方式附加事件: Template.templatename.events = {}; 使用iron router,您可以通过路由中的数据属性传递数据,并且通常不接触全局模板对象。。。那么我应该把事件放在哪里呢? 我是否应该继续使用Template.tempaltename.events 您是否应该将全局模板对象与iron router结合使用?是的,我会继续附加类似的事件。Iron router并没有真正改变UI的工作方式。不过,我会密切关注更新,因

在使用iron router之前,我使用以下方式附加事件:

Template.templatename.events = {};
使用iron router,您可以通过路由中的数据属性传递数据,并且通常不接触全局模板对象。。。那么我应该把事件放在哪里呢? 我是否应该继续使用Template.tempaltename.events


您是否应该将全局模板对象与iron router结合使用?

是的,我会继续附加类似的事件。Iron router并没有真正改变UI的工作方式。不过,我会密切关注更新,因为开发团队正在开发的新Meteor UI可能会在未来一两个月内准备就绪,届时一切都会发生变化。

您混淆了两件事:模板“类”和模板“实例”。使用
Template.name.events
可以创建应用程序的全局行为:给定模板的呈现方式、它对数据和用户事件的反应方式

使用路由器发送的数据附加到给定的模板实例,即显示在网页上的单个DOM节点相关对象

因此,是的,您仍然应该使用
Template.name.events
,也可以使用
Template.name.rendered
、created
、deleted
、customDataHelper
等等


顺便说一下,最好使用
事件的完整版本:

Template.name.events({
   ...
});

从长远来看,它可以避免一些问题。

Hubert,我倾向于使用第一种语法。第二个问题会产生什么样的问题?我也很好奇Jim问了什么。@JimMack我认为第一个问题已经被否决了。想象一下一个有几个开发人员的大项目。当您使用
Template.name.events={}
,然后另一个开发人员在另一个地方开始使用同一模板时,您的事件将在最佳情况下被删除。或者你会得到运行时错误——我在一个不太大的项目中看到过这样的错误,而且它们并不明显。如果您使用正确的格式
Template.name.events({})
,一切都会顺利进行。谢谢。我得到了整个方法的覆盖。为了澄清,我认为讨论中的语法是Template.name.specificHelper=function(){}。而@BenjaminRH可能是对的。我喜欢它,因为它打字少,糖多。谢谢你的提醒。我想这样的事情可能正在酝酿中。。。流星在0.6.5。。。相当年轻;)