2017-02-03 4 views
0

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); 

...。私はボタンのクリックで実行される関数に削除されるテンプレートのアイデンティティを渡す方法を決定することができません - 誰にも何か提案がありますか?私はこれを行うことにより、その周りに働いた末に

+0

可能性のある複製http://stackoverflow.com/questions/22907716/remove-inserted-template-in-meteor-0-8-0 –

+0

重複していませんが、リンクされた質問は解決策を決定する上で価値があります。 – knirirr

+0

私はそれがあなたの質問に直接答えると思う、試してみてください:) –

答えて

0

<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); 
     } 
    } 
}); 

私が後だったと私はオリジナルのポストで述べたヌルIDの問題を回避するどのような多かれ少なかれやっているようです。

関連する問題