界面状态机本身不记录历史状态,如果需要查看状态的转换历史,或者需要回滚等功能,可以使用插件。如果在浏览器中使用,可以引用文件state-machine-history.js,并且在状态机定义时声明插件:
plugins: [
new StateMachineHistory() // <-- plugin enabled here
]
这样,通过状态机的history属性,可以获取状态机的执行历史。如果需要限制历史记录数量,可以在声明时指定max参数,比如:
var fsm = new StateMachine({
plugins: [
new StateMachineHistory({ max: 100 }) // <-- plugin configuration
]
})
通过使用historyBack和historyForward可以回滚或重复流程状态的转换过程,所有转换相关的事件同样会被触发。可以通过canHistoryBack和canHistoryForward属性检测是否可以回滚或重做。
网友评论