在使用 Iron-router 之前,我使用以下方法附加事件:
Template.templatename.events = {};
使用iron-router,您通过路由中的数据属性传递数据,并且通常不会触及全局模板对象......那么我应该将事件放在哪里?我应该继续使用 Template.tempaltename.events 吗?
您是否应该将全局模板对象与 Iron-router 结合使用?
在使用 Iron-router 之前,我使用以下方法附加事件:
Template.templatename.events = {};
使用iron-router,您通过路由中的数据属性传递数据,并且通常不会触及全局模板对象......那么我应该将事件放在哪里?我应该继续使用 Template.tempaltename.events 吗?
您是否应该将全局模板对象与 Iron-router 结合使用?
您混淆了两件事:模板“类”和模板“实例”。随着Template.name.events
您创建应用程序的全局行为:给定模板如何呈现,它如何对数据作出反应,对用户事件。
您使用路由器发送的数据附加到给定的模板实例,即显示在网页上的单个 DOM 节点相关对象。
所以是的,您仍然应该使用Template.name.events
,以及您可以使用Template.name.rendered
、.created
、.deleted
等等.customDataHelper
。
顺便说一句,最好使用完整版events
:
Template.name.events({
...
});
从长远来看,它可以帮助您避免一些问题。
是的,我会继续附加这样的事件。Iron 路由器并没有真正改变 UI 的工作方式。但是,我会密切关注更新,因为开发团队正在开发的新 Meteor UI 可能会在接下来的一两个月内准备就绪,届时这一切都会改变。