我想知道如何绑定/设置模板传递参数值以单击流星中模板中项目的事件。
我正在使用带有 Blaze UI 包的 Meteor 0.7.0.1。我的主要想法是使用 Blaze 模板引擎在 Meteor 中构建可重用的自定义组件。我有以下组件目前运行良好,但我希望它更具可定制性并删除一些依赖项。这是我的组件模板,名为postLinks
<template name="postLinks">
<div id="link-popover-wrapper" >
<ul class="link-popover">
{{#each linkOptions}}
<li><a tabindex="-1" class="link-action" id="link-{{value}}" href="#">{{label}}</a>
</li>
{{/each}}
</ul>
</div>
</template>
该postLinks
组件在myPostItem
帮助程序中使用。
Template.myPostItem.events({
'click .post-item-link-picker': function (evt, tmpl) {
var tmpPostId = this._id;
var tempData = {linkOptions:[{label:'Favorite', value : 'favorite'},{label:'Wish list', value : 'wishlist'},{label:'Later', value : 'later'}, {label:"Read", value:"read"}]};
var linkContent = Template.postLinks(tempData);
$(".item-link-picker").popover({
content: linkContent, html: true, placement: 'bottom', trigger: "manual",
template: "UI_POPOVER_TEMPLATE"});
$("#item-link-picker-"+tmpPostId).popover('show');
},
'click .link-action': function (evt, tmpl) {
//.... some code here to update link selection in db
}
});
上面的代码工作正常,我想改进它以使其具有以下
- 在外部传递项目单击事件以绑定到
link-action
喜欢
经过上述两次更改后,它将如下所示:
Template.myPostItem.events({
'click .post-item-link-picker': function (evt, tmpl) {
var tmpPostId = this._id;
var tempData = { itemClick:function(){}, linkOptions:[{label:'Favorite', value : 'favorite'},...]};
var linkContent = Template.postLinks(tempData);
$(".item-link-picker").popover({
content: linkContent, html: true, placement: 'bottom', trigger: "manual",
template: "UI_POPOVER_TEMPLATE"});
$("#item-link-picker-"+tmpPostId).popover('show');
}
});
我缺乏如何/在哪里将传递的事件处理函数绑定到link-action
模板或助手中的元素的知识。如果有人可以帮助找到一种方法,我真的很感激。