2012-03-28 3 views
1

Ich habe ein Modul, das eine Erstellungsmethode enthält. Das Modul ist in einem anderen Modul über requireJS geladen etwa so:RequireJS - Anwenden von Konstruktoren auf Module

define(['lib/state-machine'], 
    function (stateMachine) { 

     // Creator method. 
     stateMachine.create({ 
      events : [ { name: 'Enter', from: 'Initialised', to: 'Running' }], 
     }); 
    } 
); 

Standardmäßig erfolgt die creator Methode in einem Objekt voller Rückrufen. Ich möchte, dass das Modul es als Objekt für Rückrufe aufruft. So zum Beispiel, wenn verwendete ich den Standard-Ansatz und gab der Schöpfer ein Objekt wie folgt aus:

callbacks { onEnter: function() { 
     // Do something here. 
    } 
} 

Es sollte eigentlich gehen zu ‚onEnter‘ im Modul selbst:

define(['lib/state-machine'], 
    function (stateMachine) { 
     function onEnter() { 
      // This method gets fired by the state machine. 
     } 

     // Creator method. 
     stateMachine.create({ 
      events : [ { name: 'Enter', from: 'Initialised', to: 'Running' }], 
     }); 
    } 
); 

Hinweis: Die Zustandsmaschine nimmt das Vorhandensein einer Methode an, die auf einem Ereignisnamen basiert. Wenn das Enter-Ereignis ausgelöst wird, versucht es immer, eine onEnter-Methode zu finden. Die Zustandsmaschine, die ich verwende, kann gefunden werden: https://github.com/jakesgordon/javascript-state-machine/

Antwort

0

Haben Sie versucht, wie das Codebeispiel in der Readme-Datei zu machen?

function (stateMachine) { 
    function onEnter(event, from, to) { /* your code goes here */ } 

    // Creator method. 
    stateMachine.create({ 
     events : [ { name: 'Enter', from: 'Initialised', to: 'Running' }], 
     callbacks: { 
      onEnter: onEnter 
     } 
    }); 
} 
+0

Danke für die Antwort. Ja, ich habe das gesehen. Was ich versuche zu tun ist jedoch nicht, Callbacks überhaupt anzugeben, so dass es instinktiv auf meinem Modul eingeht. – backdesk