Ich verwende RiotJS und RiotControl in meiner Anwendung für Komponenten und Event-Handling in einer schrittweisen Form Reise. Einer der Formularbildschirme sammelt im Wesentlichen Daten, die zu zwei Speichern gehen. In altem Geld würde ich dies eine Multi-Modell-Ansicht nennen, und würde dies mit einem Ansichtsmodell in etwas wie Rails behandeln. Der Bildschirm sammelt Informationen über den Kunden und Informationen über die tatsächliche Reise, so dass beim Abschicken des Formulars zwei separate Bedenken an zwei verschiedene Geschäfte gesendet werden.RiotControl Trigger Aktion von mehreren Geschäften
// Store Examples
function customerDetails() {
riot.observable(this);
this.customer = {firstName: undefined, lastName: undefined}
this.on('form-step:submitted', function(answers){
this.customer.firstName = answers.firstName,
this.customer.lastName = answers.lastName
RiotControl.trigger('customerDetails:updated', this.customer);
})
}
function surveyDetails() {
riot.observable(this);
this.survey = {questionOne: undefined, questionTwo: undefined}
this.on('form-step:submitted', function(answers){
this.survey.questionOne = answers.questionOne,
this.survey.questionTwo = answers.questionTwo
RiotControl.trigger('surveyDetails:updated', this.customer);
})
}
// In main code
nextScreen.on('surveyDetails:updated customerDetails:updated', function(details){
// I care about both of these events, but only want to execute
// this code once I've received the details from both stores.
})
Der nächste Form Bildschirm erfordert Informationen aus beiden Geschäften vor dem Rendern, also ist ich kämpfen, um zu sehen, wie ich sicher, dass beiden Aktualisierungsereignisse aus den beiden Geschäften ausgelöst wurden, vor der Montage und macht diesen Bildschirm, unter Beibehaltung die Daten von jedem Speicher von dem nachfolgenden Auslöser des Ereignisbehandlers. Ist so etwas möglich, oder mache ich das falsch?
Vielen Dank