RequireJS - 将构造函数应用于模块

时间:2012-03-28 12:28:08

标签: javascript requirejs state-machine

我有一个模块,其中包含各种创建方法。模块通过requireJS加载到另一个模块,如下所示:

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

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

默认情况下,creator方法接受一个充满回调的对象。我希望它能够做的是使用模块调用它作为回调的对象。例如,如果我使用标准方法并为创建者提供了这样的对象:

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 :(得分:0)

您是否尝试制作自述文件中的代码示例?

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
        }
    });
}