Meteor模板-继承或外包事件以避免代码冗余
Meteor Template - inherit or outsource events to avoid code redundancy
我有一个页面,里面有一堆图片库。每个图库都可以通过如下菜单链接访问:
Gallery1 Gallery2 Gallery3
每个图库都有自己的功能,但它们共享某些功能,如点击前进和点击栏。
文件结构如下:
Gallery_Layout.html
Gallery_Layout.js
Gallery1.html
Gallery1.js
Gallery2.html
Gallery2.js
Gallery3.html
Gallery3.js
使用FlowRouter,每个Gallery都会在布局中进行渲染。目前,所说的共享功能在每个Galleries的js文件中都是多余的:
Gallery1.js:
Template.gallery1.events({
'click .btn-backward' (event, template) {
// show last picture
},
'click .btn-forward' (event, template) {
// show next picture
}
});
Gallery2.js:
Template.gallery2.events({
'click .btn-backward' (event, template) {
// show last picture
},
'click .btn-forward' (event, template) {
// show next picture
}
});
等等…
当我将这些事件外包给父模板Gallery_Layout.js时,它不起作用。
对于帮助者,我知道有全局帮助者,有活动的吊坠吗?
问题:如何外包或继承Template事件并将其用作可重用组件?
提前感谢!
Muff
1)您可以使用主体模板:
Template.body.events({
});
每个模板都加载在主体内部。
2) 你可以使用选择器。Gallery是一个属于所有Gallery的HTML类,
Template.Gallery_Layout.events({
'click .gallery' (event, instance) {
let gallery = event.target;
// execute code on gallery.
}
});
相关文章:
- 缓存的最佳实践.避免冗余缓存
- UMD:正在分配给模块,导出冗余
- 如何更正阵列中的这种冗余
- Regex删除涉及零或一的冗余乘法/除法
- 删除方法中的冗余代码
- 多选择器冗余
- 简化冗余jquery's代码
- 排列具有相同数据的多个对象(减少冗余)
- Meteor模板-继承或外包事件以避免代码冗余
- HTML-减少HTML代码冗余
- 如果我两次使用相同的反应/冗余组件,它们会共享状态吗?
- 等待多个 ipc 调用完成,然后再继续电子/冗余
- 在 Javascript 中模拟“IN”运算符以简化冗余逻辑 OR 的最佳解决方案是什么?
- elasticsearch:保留冗余(非规范化)数据或保留 id 列表以进行交叉引用
- 如何获取调度冗余
- 编写函数以防止冗余
- 如何避免客户端验证中的冗余条件
- 同构反应-路由器-冗余同步历史中间件
- ExtJS - 如何创建可重用的函数以避免代码冗余
- 构建本地化反应/冗余应用程序的存储