我需要将窗口的位置和大小保存到db表中, 因此:
关于事件“创造” - >保存位置和大小
关于事件“移动” - >保存位置
关于事件“调整大小” - >保存大小
关于事件“最大化” - >保存“最大化”,但不是位置(0,0)和大小(desktopSize)
如果旧位置和大小保留在数据库中,则只能实现此目的。
某些事件启动某些函数以通过AJAX将值存储到db,顾名思义:
调整大小:saveSize()
移动:savePosition()
最大化:saveMaximize()
恢复:restoreWindow()
但是我不知道如何处理事件,因为事件没有被触发,因为我会“喜欢”它们被触发。因此,在我有机会获得它们之前,我需要存储的值被覆盖。我记录了这些事件:
(案例 - >事件)
打开窗口:
1. 移动
2. 调整大小
3. 移动
多数民众赞成
“点击”最大化:
1. 调整大小
2. 移动
3. 最大化
位置和大小值会被覆盖,但只需要保存标记“maximized”:true
“点击”恢复:
1. 移动
2. 恢复
3. 调整大小
位置保存到db中,然后才能从db中获取“旧”值以恢复
如何处理?
答案 0 :(得分:0)
请勿手动执行此操作,而是使用组件状态处理:http://docs.sencha.com/extjs/4.2.2/#!/example/state/state.html
答案 1 :(得分:0)
陷入了我自己的想法。只是忘了问“如何管理这个:最大化和恢复”。
状态存储在window-object本身中:
scope = win.events.maximize.listeners[0].scope;
(object) size = scope.restoreSize
[] position = scope.restorePos
因此,事件“最大化”最后被触发,所以我可以将之前的状态写入db,我觉得它有点脏,因为我不知道为什么extjs经常触发事件