Meteorアプリケーションでは、ボタンをクリックしてdivに項目を追加できます。これらのボタンにはdivを削除するボタンがあります。Meteorテンプレートの追加と削除
<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>
...とJavaScriptファイルに:ここでのコードの抜粋です
Template.MainTemplate.events({
'click .add-dynamic'(event) {
const random = String.fromCharCode(65 + Math.floor(Math.random() * 26));
const uniqid = random + Date.now();
Blaze.renderWithData(Template.DynamicTemplate, {uniqid: uniqid}, $("#add-stuff-here")[0])
},
})
Template.DynamicTemplate.events({
'click .delete-dynamic'(event){
const target = event.target || event.srcElement;
const id = target.id;
console.log("Button ID: " + id); // This is null
new = $('#dynamic-' + id);
new.parentNode.removeChild(new); // Therefore, this fails
}
});
テンプレートを追加すると、期待通りに動作しますが、クリックされたボタンのIDがあるように思われるようにそれらを削除すると失敗しますなし。
いずれにしても私は間違いなく完全に間違っています(私は長い間メテオールを使用していませんでしたが、とにかくそれをよく知っていませんでした)。これは達成されるかもしれません。
ETAは:コメントで提案されている可能性の答えが含まれています: "Blaze.renderでレンダリングテンプレートを期待する"
UI.remove(self.view);
...。私はボタンのクリックで実行される関数に削除されるテンプレートのアイデンティティを渡す方法を決定することができません - 誰にも何か提案がありますか?私はこれを行うことにより、その周りに働いた末に
可能性のある複製http://stackoverflow.com/questions/22907716/remove-inserted-template-in-meteor-0-8-0 –
重複していませんが、リンクされた質問は解決策を決定する上で価値があります。 – knirirr
私はそれがあなたの質問に直接答えると思う、試してみてください:) –