2016-12-09 25 views
0

流星群のアプリケーションでは、1つのボタンを押すとテンプレートが表示され、別のボタンを押すと同じテンプレートが隠れるページを作成しようとしています。私はこれを実装するために、trueまたはfalseのいずれかにブール値(トグルと呼ばれる)を変更するリスナを添付した2つのボタンを使用しました。Meteor Uncaught ReferenceError:変数が定義されていません

Uncaught ReferenceError: toggle is not defined at object.clickDataActionShow 

多分切り替えているようですが、範囲外である:anotherTemplateを表示することができますが、私はこのエラーが出るように、ヘルパーメソッドは、if文に真または偽の値を返す必要がありますか?まったく違う何かが私の周りに頭を上げることはできません。

言うまでもなく、自動公開が削除されているため、公開/定期購読の問題になる可能性はありますか?

するlist.html

<Template name="list"> 
    <div> 
     <button class="btn btn-info" data-action="show" id="show">Show</button> 
     <button class="btn btn-danger" data-action="hide" id="hide">Hide</button> 
     {{ #if toggleGet }} 
      {{> anotherTemplate}} 
     {{ /if }} 
    </div> 
</Template> 

list.js

Template.list.created=function(){ 
    this.toggle = new ReactiveVar(true); 
}; 

Template.list.helpers(
    { 
     toggleGet: function(){ 
      return Template.instance().toggle.get(); 
     } 
    } 
); 

Template.list.events(
    { 
     //Sets toggle to true, shows anotherTemplate 
     'click [data-action="show"]': function(event, template) { 
      template.toggle.set(true); 
     }, 
     //Sets toggle to false, hides anotherTemplate 
     'click [data-action="hide"]': function() { 
      template.toggle.set(false); 
     } 
    } 
); 

すべてのヘルプははるかに高く評価されるだろう、ありがとう:):

いずれかの方法で、ここでは私のコードです。

答えて

2

onCreatedによってあなたの作成方法の変更とそれが動作するはずです:)私はそれが問題だとは思わないonCreated、onRendered、流星の起動などを試してみた

Template.list.onCreated(function() { 
    this.toggle = new ReactiveVar(true); 
}) 
+0

。 – Liam

関連する問題