MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Compila il campo di selezione dalla raccolta e filtra in base al valore selezionato in meteor

Bene, per popolare la selezione, dovresti cambiare {{#each}} fino alla selezione, in questo modo.

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

Perché se metti il ​​{{#each}} nella parte superiore del <select> tag meteor creerà 1 selezione per ogni azienda.

E l'assistente aziendale dovrebbe essere semplice come un semplice return company.find();

Ora, se vuoi filtrare, ci sono molte opzioni per farlo, una potrebbe essere questa.

Mi piace usare ReactiveDict(); , quindi lo userò in questo esempio.

Installalo meteor add reactive-dict

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

 self.example = new ReactiveDict();

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

Ora su alcuni eventi come change , procedi come segue.

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;
  }
})

Ora mostra i risultati.

Template.example.helpers({

 showSelectedValues : function(){

  var instance = Template.instance();

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

Questo dovrebbe darti un quadro generale, buona fortuna!