CONTEXTvon Callback-Methode in Meteor mit Mantra Passing Wert
ich das Mantra Architektur mit Meteor 1.3 und Astronomy mit meinen Sammlungen zu verwalten. Ich versuche, die ID des eingefügten Objekts durch die Meteor Callback-Funktion zu übergeben, um es in meinem Container zu verwenden.
PROBLEM ich die richtige Id, wenn ich das Element in der Methode Konsole anmelden, aber nicht definiert erhalten, wenn es (aus der Datei von einer höheren Schicht zu trösten versucht, sich einzuloggen, dass meine Aktion hält, die den Methodenaufruf Meteor ruft). Ich muss es dann von meinen Aktionen an den Container übergeben, der es benutzt.
Methode (im Server)
export default function() {
Meteor.methods({
'condition.create'(conditionTitle, conditionType, segmentId) {
const condition = new Conditions();
// Show the latency compensations
Meteor._sleepForMs(500);
// XXX: Do some user authorization
// website._id = _id;
condition.conditionTitle = conditionTitle;
condition.segmentId = segmentId;
condition.conditionType = conditionType;
condition.save(function(err, id) {
const conditionId = id;
return conditionId;
});
}
});
}
Actions Datei (wobei der Anruf erfolgt, - Client-Seite)
export default {
create({Meteor, LocalState, FlowRouter}, conditionTitle, conditionType, segmentId) {
LocalState.set('CREATE_CONDITION_ERROR', null);
if (!conditionTitle) {
return LocalState.set('CREATE_CONDITION_ERROR', 'Condition Title is required!');
}
if (!conditionType) {
return LocalState.set('CREATE_CONDITION_ERROR', 'Condition Type is required!');
}
if (!segmentId) {
return LocalState.set('CREATE_CONDITION_ERROR', 'segmentId is required.');
}
LocalState.set('CREATE_CONDITION_ERROR', null);
Meteor.call('condition.create', conditionTitle, conditionType, segmentId, function(err, conditionId) {
if (err) {
return LocalState.set('CREATE_CONDITION_ERROR', err.message);
} else {
console.log("method" + conditionId);
}
});
},
clearErrors({LocalState}) {
return LocalState.set('CREATE_CONDITION_ERROR', null);
}
};
Container (Teil Schnipsel auf Client - dies ist, wo Ich brauche die Bedingung zu nutzenId)
onSubmit(event) {
event.preventDefault;
const {create, segmentId} = this.props;
const conditionTitle = this.state.conditionTitle;
const conditionType = this.state.conditionType;
create(conditionTitle, conditionType, segmentId, function(conditionId) {
console.log(conditionId);
});
}