Backbone.js 如何使用主干网.StateManager?
我正在尝试探索Backbone.StateManager,但找不到太多关于此的资料。 我已经看过了,但是没有简单的例子可以使用它 我举了一个这样的例子Backbone.js 如何使用主干网.StateManager?,backbone.js,state-machine,Backbone.js,State Machine,我正在尝试探索Backbone.StateManager,但找不到太多关于此的资料。 我已经看过了,但是没有简单的例子可以使用它 我举了一个这样的例子 (function($) { var UserInputView = Backbone.View.extend({ states: { foo: { enter: function () { alert('hi');
(function($) {
var UserInputView = Backbone.View.extend({
states: {
foo: {
enter: function () {
alert('hi');
return console.log('enter bar');
},
exit: function () {
alert('hi');
return console.log('exit foo');
},
transitions: {
transitions: {
'onBeforeExitTo:anotherState': function () {
alert('hi');
},
'onExitTo:anotherState': function () {
alert('hi');
},
'onBeforeEnterFrom:anotherState': function () {
alert('hi');
},
'onEnterFrom:anotherState': function () {
alert('hi');
}
}
}
},
bar: {
enter: function () {
alert('hi');
return console.log('enter bar');
},
exit: function () {
alert('hi');
return console.log('exit bar');
},
}
},
initialize: function () {
var statemanager;
alert('intialized');
console.log(this.states);
statemanager = Backbone.StateManager.addStateManager(this.states);
return statemanager;
},
render: function () {
alert('render');
}
});
var user = new UserInputView();
})(jQuery);
在所有这些代码中,只有初始化功能在工作。代码的其余部分不起作用。请指导基本上,您的代码未命中状态更改和
主干.StateManager.addStateManager
的正确目标。如文件中所述,使用
StateManager提供了一种轻松添加StateManager的方法
对任何物体StateManager.addStateManager
获取目标对象并
可选选项集,在目标上定义的任何状态下读取,
并创建一个新的StateManager。它还设置了许多方法
目标,包括triggerState
,getCurrentState
,以及对
StateManager位于target.StateManager
这意味着Backbone.StateManager.addStateManager
的目标应该是您的对象实例,您可以使用model.triggerState
开始更改状态。例如:
var UserInputView = Backbone.View.extend({
states: {
// your states
},
initialize: function () {
var statemanager;
statemanager = Backbone.StateManager.addStateManager(this);
}
});
var user = new UserInputView();
user.triggerState('foo');
基于您的代码的演示,以