2017-09-11 7 views
0

私は流星群とmongodbを学んでいますので、mongodbと流星の両方の知識はあまりありません。以下は idをテキストボックスに渡してmongodbで文書を検索する方法は?

がjsのコードです:

import { Template } from 'meteor/templating'; 
import { Dbs } from '../lib/collections.js'; 
import './main.html'; 

Template.body.helpers({ 
    /*temp1:[ 
    {text:'my data1'}' 
    {text:'my data1'} 
    ]*/ 

    dbs(){ 
    return Dbs.find({'user_id':'p123'}); 
    } 
}); 

は基本的に私はちょうどテキストボックスにユーザーIDを渡し、それをもとにしたい、私はそれを渡していたコード上記user.Inのその他の詳細を表示します私はここで何をすべきですか?

答えて

1

イベントで更新するReactiveVarをテンプレートインスタンスに添付することができます。 その後、ヘルパーが再実行されますので、毎回、ヘルパー内の値の変更に使用します。

Template.myTemplate.onCreated(function() { 
    this.currentTextBox = new ReactiveVar(); 
}); 

Template.myTemplate.events({ 
    "keyup .js-my-textbox"(event, instance) { 
    // This event is executed when you type in an input with the class "js-my-textbox" 
    instance.currentTextBox.set(event.target.value); 
    }, 
}); 

Template.myTemplate.helpers({ 
    dbs() { 
    const instance = Template.instance(); 

    return Dbs.find({'user_id': instance.currentTextBox.get() }); 
    }, 
}); 

EDIT:HTML部分何ができるかの 例:

<template name="myTemplate"> 
    <input type="text" placeholder="Search" class="js-my-textbox"> 
    {{#each db in dbs}} 
    <-- Do what you want, example: --> 
    <p>{{db.myField}}</p> 
    {{/each}} 
</template> 
+0

instance.currentTextBox.set(event.target.value);上記のコード行が何をしているのか理解できませんか?@GaëtanRouziès – Nisha

+0

ヘルパー/イベントとonCreated、onRendered関数の中にいるとき、テンプレートオブジェクトにアクセスできます(テンプレートインスタンスと呼びます)。上記のコードでは、テンプレート内で共有されているオブジェクトは、 'onCreated'と' Template.instance() 'の中で' this'を使ってヘルパーやイベントの中にアクセスすることができます。ヘルパーとイベントの間で変数を共有するために使用します。変数 'currentTextBox'をTemplateインスタンスに追加します。そしてこの 'instance.currentTextBox.set(event.target.value)'は、変数をテキストボックスの値で設定することを意味します。 –

+0

大丈夫です。あなたの助けをありがとうが、それは私のために働いていません。私はあなたがより詳細な方法で私を助けることができる場合は、私は言ったようにコードを使用したので、何が間違っているか理解していません。 – Nisha

0

まずあなたがを作成しますイベント関数Template.body.events({})はテキストにアクセスします。使用するストア変数はMeteor Sessionです。変数はヘルパーに簡単にアクセスします。セッション変数が変更されると変数が変更されます。

関連する問題