Voglio implementare una pubblicazione basata su parametri in Meteor, ma sto riscontrando alcuni problemi.Come posso fare una pubblicazione basata su parametri in Meteor e rimuovere il vecchio documento di abbonamento?
Ecco quello che ho.
Mentre l'utente digita caso keyup della sottoscrizione alla pubblicazione e passa il valore dell'ingresso.
'keyup #customerSearch': function(event, template){
var keyword = template.find('#customerSearch').value;
if(keyword){
if(keyword.length >= 3){
Meteor.subscribe('sessioncustomers', keyword);
}
}
}
La pubblicazione utilizza questa parola chiave per restituire i record.
Meteor.publish("sessioncustomers", function(keyword){
if(keyword){
if(keyword.length >= 3){
query.name = new RegExp(regExpQuoted(keyword), 'i');
Customers.find(query);
} else {
return null;
}
}else{
return null;
}
});
Il problema. Funziona e i documenti vengono ricevuti tranne quando il client cambia la parola chiave o piuttosto quando le parole chiave cambiano la pubblicazione pubblica documenti aggiuntivi che corrispondono alle parole chiave ma la raccolta client non rimuove mai i vecchi documenti.
Come faccio ad avere il vecchi documenti che corrispondono più fuori della collezione cliente?
ho pensato che, poiché i parametri della sottoscrizione avevano cambiato che i documenti non corrispondenti sarebbero sottoscritte e solo i nuovi documenti corrispondenti sarebbero sottoscritte.
Il lato client di handle non sembra supportare un metodo di arresto. –
La var dovrebbe essere definita al di fuori dell'ambito locale. Aggiornato. – mquandalle
Mi chiedo, per aumentare le prestazioni, non dovresti abbonarti al nuovo abbonamento prima di annullare l'iscrizione al vecchio abbonamento? Se il vecchio e il nuovo abbonamento contengono degli stessi documenti, questi documenti non saranno inviati sul filo una seconda volta, giusto? –