RequireJS - Применение конструкторов к модулям - PullRequest
1 голос
/ 28 марта 2012

У меня есть модуль, который содержит метод создания своего рода. Модуль загружается в другой модуль через requireJS, например, так:

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

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

По умолчанию метод создателя принимает объект, полный обратных вызовов. То, что я хотел бы сделать, это использовать модуль, вызывающий его как объект для обратных вызовов. Например, если я использовал стандартный подход и дал создателю объект, подобный этому:

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

На самом деле он должен перейти к 'onEnter' в самом модуле:

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' }],
        });
    }
);

Примечание. Конечный автомат предполагает существование метода на основе имени события. Поэтому, когда возникает событие Enter, оно всегда пытается найти метод onEnter. Конечный автомат, который я использую, можно найти по адресу: https://github.com/jakesgordon/javascript-state-machine/

1 Ответ

0 голосов
/ 28 марта 2012

Вы пытались создать пример кода в файле Readme?

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
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...