sql >> Databasteknik >  >> NoSQL >> MongoDB

Fyll i urvalsfältet från samlingen och filtrera enligt det valda värdet i meteor

För att fylla i markeringen bör du ändra {{#each}} ner till markeringen, så här.

<select>
  <option disabled selected>Choose option</option>
{{#each company}}
  <option>{{category}}</option>
{{/each}}
</select>

För om du sätter {{#each}} överst i <select> tag meteor kommer att skapa 1 urval för varje företag.

Och företagshjälpen ska vara enkel som en enkel return company.find();

Om du nu vill filtrera, finns det många alternativ för att åstadkomma detta, ett kan vara detta.

Jag gillar att använda ReactiveDict(); , så jag kommer att använda i det här exemplet.

Installera den meteor add reactive-dict

Template.example.onCreated(function(){
 var self = this;

 self.example = new ReactiveDict();

self.example.setDefault( 'valueToFilter' , null);
});

Nu på något evenemang som change , gör följande.

Template.example.events({
 'change select' : function( event, template ) {

   var instance = Template.instance();

   instance.example.set( 'valueToFilter' event.target.value ); //or use $('select').val()  whatever you like to take the value;
  }
})

Visa nu resultaten.

Template.example.helpers({

 showSelectedValues : function(){

  var instance = Template.instance();

  return Companies.find( { name : instance.example.get( 'valueToFilter' )} );
 }
})

Detta borde ge dig en stor bild, lycka till!




  1. MongoDB välj alla där fältvärden i en frågelista

  2. Få hela arrayen med en av dess strängar. Array är inuti en annan array. Mongodb/Javascript

  3. varför kan jag inte starta mongodb

  4. Hur uppdaterar/lägger jag upp ett dokument i Mongoose?