In meinem Stacks
Schema habe ich eine dimensions
Eigenschaft als solche definiert:Verwendung von Objekten als Optionen in Autoform
dimensions: {
type: [String],
autoform: {
options: function() {
return Dimensions.find().map(function(d) {
return { label: d.name, value: d._id };
});
}
}
}
Das funktioniert wirklich gut, und mit mongolisch ich bin in der Lage zu sehen, dass ein Versuch zum Einfügen von Daten durch die Form hat gut funktioniert (in diesem Fall habe ich zwei Dimensionen einfügen zu)
aber was ich wirklich, welche Daten ist, dass die tatsächliche Dimension Objekt speichert, anstatt sie Schlüssel ist. Etwas wie folgt aus:
[
Um zu versuchen, dies zu erreichen, ich type:[String]
-type:[DimensionSchema]
und value: d._id
-value: d
geändert. Das Denken hier, dass ich der Form sage, dass ich ein Objekt erwarte und jetzt das Objekt selbst zurückgebe.
Allerdings, wenn ich dies ausführen, bekomme ich den folgenden Fehler in meiner Konsole.
Meteor unterstützt derzeit keine Objekte unterstützen andere als ObjectID als ids
Stochern ein wenig und wechselnden type:[DimensionSchema]
-type: DimensionSchema
ich einige neue Fehler in der Konsole sehen (vermutlich sie begraben werden, wenn die type
ist ein Array
So scheint es, dass Autoform versucht, den Wert zu übernehmen ich in th gespeichert werden soll die Datenbank und versuchen, das als ID zu verwenden. Irgendwelche Gedanken über den besten Weg, dies zu tun ?.
als Referenz hier ist mein DimensionSchema
export const DimensionSchema = new SimpleSchema({
name: {
type: String,
label: "Name"
},
value: {
type: Number,
decimal: true,
label: "Value",
min: 0
},
tol: {
type: Number,
decimal: true,
label: "Tolerance"
},
author: {
type: String,
label: "Author",
autoValue: function() {
return this.userId
},
autoform: {
type: "hidden"
}
},
createdAt: {
type: Date,
label: "Created At",
autoValue: function() {
return new Date()
},
autoform: {
type: "hidden"
}
}
})
Haben Sie [this] (https://github.com/aldeed/meteor-autoform/issues/798) Problem gesehen? – MasterAM
@MasterAM nein. Das deckt es ziemlich ab. Danke, dass du mich geschlossen hast. – Chris
Frage ist, sind Sie sicher, dass Sie das gesamte Dokument einbetten möchten? Vielleicht brauchen Sie nur eine Teilmenge? Gibt es eine Chance, dass sich eine "Dimension" in Zukunft ändert (und wenn ja, wie planen Sie, die verschachtelten Dokumente auf eine wartbare Art und Weise zu aktualisieren)? Sie können auch eine Meteor-Methode verwenden, um mit dem Formular umzugehen und alles dort zu tun. – MasterAM