Javascript 添加和删除Meteor模板
对于Meteor应用程序,我希望用户能够通过单击按钮向列中添加div,每个按钮都有一个删除div的按钮。下面是代码摘录:Javascript 添加和删除Meteor模板,javascript,meteor,meteor-blaze,Javascript,Meteor,Meteor Blaze,对于Meteor应用程序,我希望用户能够通过单击按钮向列中添加div,每个按钮都有一个删除div的按钮。下面是代码摘录: <template name="MainTemplate"> .... <a class="btn btn-sm" class="add-dynamic"></a> <div id="add-stuff-here"></div> .... </template> <
<template name="MainTemplate">
....
<a class="btn btn-sm" class="add-dynamic"></a>
<div id="add-stuff-here"></div>
....
</template>
<template name="DynamicTemplate">
<div id="dynamic-{{uniqid}}">
<a class="btn btn-sm delete-dynamic" name="{{uniqid}}"></a>
</div>
</template>
添加模板按预期工作,但删除模板失败,因为单击按钮的id似乎为零
在任何情况下,我都可能是完全错误的(我已经很长时间没有使用Meteor了,而且我也不太了解它),因此,如果您能就如何实现这一点提出建议,我将不胜感激
预计到达时间:评论中建议的可能答案包括:
UI.remove(self.view);
…它“期望使用Blaze.render呈现模板”。我无法确定如何将要删除的模板的标识传递给在单击按钮时运行的函数-有人有任何建议吗?最后,我通过这样做解决了这个问题:
<template name="DynamicTemplate">
<input type="text" class="dynamic-input" placeholder="Some text" />
</template>
Template.DynamicTemplate.events({
'click .delete-dynamic'(event){
inputs = $(".dynamic-input").length;
if ( inputs > 1 ) {
const element = $(".dynamic-input")[dynamic - 1];
element.parentNode.removeChild(element);
}
}
});
Template.DynamicTemplate.events({
“单击。删除动态”(事件){
输入=$(“.dynamic input”).length;
如果(输入>1){
常量元素=$(“.dynamic input”)[dynamic-1];
element.parentNode.removeChild(元素);
}
}
});
这似乎与我所追求的差不多,并避免了我在原始帖子中提到的空ID问题。可能的重复不是重复,尽管链接问题在确定解决方案时可能很有价值。我认为它直接回答了您的问题,尝试一下:)我当然会尝试,虽然此时此刻我正在一家酒吧喝酒,所以必须推迟考试。谢谢你的链接。不幸的是,我在这个问题上找不到任何能够帮助我解决上述具体问题的东西。我已经编辑了我的问题,以提供进一步的细节。
<template name="DynamicTemplate">
<input type="text" class="dynamic-input" placeholder="Some text" />
</template>
Template.DynamicTemplate.events({
'click .delete-dynamic'(event){
inputs = $(".dynamic-input").length;
if ( inputs > 1 ) {
const element = $(".dynamic-input")[dynamic - 1];
element.parentNode.removeChild(element);
}
}
});