2017-02-19 9 views
0

ラジオボタンでリストに基づいてコレクションをフィルタリングしようとしています。ユーザーが別のラジオボタンをクリックするたびに、フィルタリングされたコレクションが更新されます。私はヘルパーにMeteorヘルパーに変数を渡す方法

私のクライアントjsの変数を渡すカントので、私はすでにクリックされたラジオが、検索doesntの仕事の値を取得する:私はすべての助けに感謝

Template.NeuesEvent.events({ 
    "click .RadioButtonOnClick": function(event){  
     var variable = $('input[name="VersammlungRadio"]:checked').val(); 
     console.log(variable); 

    } 
}); 


Template.friendsScroll.helpers({ 
    friend: function(){ 
     return Friends.find({Field: variable}); 
    } 
}); 

をありがとう;)

答えて

1

あなたが別のテンプレートに変数を渡す必要があるとして、あなたは、セッションを使用することができます

Template.NeuesEvent.events({ 
    "click .RadioButtonOnClick": function(event){  
     var variable = $('input[name="VersammlungRadio"]:checked').val(); 
     Session.set("variable",variable); 

    } 
}); 

Template.friendsScroll.helpers({ 
    friend: function(){ 
     return Friends.find({Field: Session.get("variable")}); 
    } 
}); 

セッションパッケージには、それが

0123を使用してインストールし、インストールされていない場合
meteor add session 
+0

完璧な回答ありがとう;) – Michael

1

私の意見では、クライアントアプリケーションでグローバルに設定されているため、セッションを使用しないでください。

例では、2つの異なるテンプレート(NeuesEventとfriendsScroll)を使用しています。 1つのテンプレートは別のテンプレートですか?彼らは兄弟ですか?

質問はテンプレートの間でパラメータ渡す方法であれば

// client/NeuesEvent.js 
Template.NeuesEvent.helpers({ 
    dataToFriendScroll() { 
     return { 
     text: 'blahblah', 
     randomBool: false, 
     }; 
    }, 
}); 

// client/NeusEvent.html 
<!-- beginning of the template --> 
{{> friendsScroll dataToFriendScroll}} 
<!-- end of the template --> 

// client/friendScroll.js 
Template.friendScroll.onCreated(function() { 
    const self = this; 

    // The data you want to get from the other template 
    self.autorun(() => { 
    const dataPassedInTemplate = Template.currentData(); 
    const textFromNeusEvent = dataPassedInTemplate.text; 
    const randomBoolFromTheOtherTemplate = dataPassedInTemplate.randomBool; 
    }) 
}) 

ヘルパーイベント同じテンプレートの間で変数を渡すためには、あなたが使用することができます流星反応性のディクテーションパッケージ:https://atmospherejs.com/meteor/reactive-dict

// client/neuesEvent.js 

Template.neuesEvent.onCreated(function() { 
    const self = this; 

    self.state = new ReactiveDict(); 
    self.state.setDefault({ 
    radioButton: false, 
    }); 
}); 


Template.neuesEvent.events({ 
    'click .RadioButtonOnClick': function (event, templateInstance) { 
    const result = event.target.value; 
    templateInstance.state.set('radioButton', result); 
    }, 
}); 


Template.neuesEvent.helpers({ 
    result() { 
    const instance = Template.instance(); 
    const resultButton = instance.state.get('radioButton'); 
    return resultButton; 
    }, 
}); 
関連する問題