In einem Meteor Autoform (das klassische aldeed Paket mit: https://github.com/aldeed/meteor-autoform), habe ich ein verstecktes Feld 'score'
, dessen Wert eine Funktion von einem anderen Feld namens 'optionID'
genannt.Meteor Autoform - Rechenwert für verstecktes Feld
{{#autoForm
class = "autoform"
id = dataID
collection = (getCollection 'DataColl')
doc = dataDoc
type = "method-update"
meteormethod = "DataColl.autoformUpsert"
singleMethodArgument = true
autosave = true
}}
{{> afQuickField
name = 'optionID'
type = "select-radio"
template = "buttonGroup"
options = scoreOptions
}}
{{> afQuickField
name = 'score'
type = "hidden"
value = selectedOptionScore
}}
{{/autoform}}
Die Funktion selectedOptionScore
auf dem ausgewählten Wert von ‚OptionID‘ (mit Autoform.getFieldValue
) ist
Template.formTemplate.helpers({
selectedOptionScore(): String {
const optionID = AutoForm.getFieldValue('optionID');
const optionScore = someFunction(optionID);
return optionScore;
},
});
Das Problem hängt, dass der Wert von 'score'
auf jeder automatische Speicherung des Formulars „hinter einer Änderung ist "der Wert von , was bedeutet, die Funktion Computing 'score'
ist richtig, aber die Sicherung auf Mongo scheint vor dem 'score'
Wert passiert zu sein passiert, so in Mongo, 'score'
hat den Wert von was auch immer es war vor 'optionID'
zuletzt geändert.
Zum Beispiel, wenn ich 'score'
nicht ausgeblendet, so dass ich es ändern kann, wird die Änderung direkt in der Webseite seinen Wert in Mongo korrekt wiedergegeben. Das Ändern der 'optionID'
in der Webseite führt jedoch zu dem Verhalten "eine Änderung zurück".
Gibt es eine Möglichkeit, ein Autoform-Feld eines Meteors von einem anderen Feld in der gleichen Form abhängig zu machen, ohne dass es automatisch mit einer Änderung "hinterherhinkt"?
Perfekt. Genau das habe ich getan, um es zu lösen. Und als Kopf für jeden, der das sieht, denke ich, dass autovalues auch gut gewesen wäre, wenn mein Schema spezifisch genug gewesen wäre. – tscizzle