0

私のボタンをクリックすると、コメントセクションを含むdivが表示および非表示になります。今、私は彼にクリックでテキストを変更させたいと思っています。したがって、一度クリックするとコメントが表示されますが、テキストは「コメントを表示」ではなく「コメントを非表示」にする必要があります。インターネットで見つけたいくつかの解決策と、私にとって論理的ないくつかの解決策を試しましたが、うまくいきません。私もこれを試しましたが、 SetSession が定義されていないと表示されます。

テンプレート:

<template name="PrikažiMe">

<button class="PrikažiKomentar"> {{текст}} </button>

</template>

JS

if (Meteor.isClient) {


  /*  Template.PrikažiMe.onCreated(function() {
        Session.set(текст , 'Прикажи коментаре');  // <---- This part makes like everything is unpublished
    }); */


    Template.PrikažiMe.events({
      'click .PrikažiKomentar': function(){

        if (document.getElementById(this._id).style.display == "none") 
            { document.getElementById(this._id).style.display = "inline-flex", SetSession (текст, 'Сакриј коментаре');}
        else {document.getElementById(this._id).style.display = "none", SetSession (текст, 'Прикажи коментаре'); }
      }, 
    });  

    Template.PrikažiMe.helpers({   
      текст: function(){
        return Session.get(текст);
      },
    });      
};
4

2 に答える 2

0

それで、何が問題なのかがわかりました。これが将来誰かを助けることを願っています。コードを見てください:

テンプレート:

<button class="PrikažiKomentar"> {{#if текст}}Сакриј коментаре {{else}} Прикажи коментаре {{/if}} </button>

</template>

JS:

if (Meteor.isClient) {

    Template.PrikažiMe.onCreated(function PrikažiMeOnCreated() {
        this.текст = new ReactiveVar(false);
    }); 

    Template.PrikažiMe.events({
      'click .PrikažiKomentar': function(event, template){
        if (document.getElementById(this._id).style.display == "none") 
            { document.getElementById(this._id).style.display = "inline-flex", template.текст.set( true );}
        else {document.getElementById(this._id).style.display = "none", template.текст.set( false );}
      }, 
    });  

   Template.PrikažiMe.helpers({   
       текст: function() {
              return Template.instance().текст.get();
       },
    });      
};
于 2016-05-31T18:53:34.130 に答える