Ich versuche, ein Dokument in meinem Template.admin.events-Code zu finden. Ich habe ein Formular und onClick Ich möchte überprüfen, ob die ID der ObjectID eingegeben ist ein vorhandenes Dokument in meiner Sammlung und holen Sie dieses Ergebnis, um es in der Vorlage anzuzeigen.Richtige Methode zum Suchen eines Dokuments im Vorlagenereignis?
Mein Ereigniscode auf dem Client:
Template.admin.events({
'click #btnAjouterObjet'(event) {
let objetIdInput = $('#object_id').val().toString();
Meteor.subscribe('objetsFindOne', objetIdInput, {
onReady: function() {
let obj = Objets.findOne();
if (obj) {
console.log("found");
console.log(obj);
objetsArr.push(objetIdInput);
}
else {
console.log("not found");
console.log(obj);
}
}
});
}
});
In meiner Objets api:
Meteor.publish('objetsFindOne', function objetsFindOne(param_id){
return Objets.find({_id : param_id});
})
ich überprüft haben, und meine objetIdInput immer auf Klick ändern, wenn eine andere ID eingegeben wird, die aber subscribe immer Gibt die erste eingegebene ID zurück. Ich habe auch das onReady hinzugefügt, weil es andernfalls undefined zurückgegeben wurde.
Ich bin neu bei Meteor und ich habe auch versucht, die ganze Sammlung zu abonnieren und den Fund auf dem Client zu tun, aber ich denke nicht, dass es die beste Idee ist, da meine Sammlung ungefähr 22000 Dokumente hat.
Das Abo einige Zeit dauert, aber ich kann nicht herausfinden, wie man darauf wartet, dass es fertig ist, bevor der Rest des Codes ausgeführt wird. –