0

我正在尝试使用 Extjs 4.1 构建一个应用程序。一般来说:它是一个视口,西边有一个树形面板,中间有一个面板,它实际上是一个选项卡面板。当用户单击树节点时,一个选项卡将填充中心视图。我在树面板中设置了一个属性,在选择一个节点后它会被取消选择(deselectAll)。这样做的原因是用户可以从不同的位置(例如,在每个选项卡内)打开许多选项卡。但是,当我设置上述属性时,它会产生错误(“数据”未定义)。未定义的数据是与树节点相关的数据。所以,关于选择模型的问题:

我该如何解决这个问题(解决方案可能是选择第一个节点,但我不想要它)?

至于历史实用程序,我需要实现浏览器后退按钮。特别是我想禁用浏览器的刷新按钮。如果用户打开假设 15 个选项卡并意外单击浏览器刷新或“F5”,他/她将失去一切。我尝试了很多东西,但没有运气。我无法理解“Ext history util”。所以,

有什么好的例子吗?

有人可以指导我怎么做吗?

请注意,该应用程序是根据新的“MVC”架构构建的。

4

1 回答 1

0

停止刷新事件非常容易 - 只要您的页面具有焦点。例如:

Ext.getDoc().on('keypress', function(event) {
    if (event.getCharCode() == event.F5) {
        event.stopEvent();
        console.log('you stopped the refresh event');
    }
});

如果您的页面没有焦点,则无能为力——但大多数情况下,当打开不同的浏览器选项卡时,您的页面会失去焦点,因此 F5 无论如何都会刷新该选项卡。

我仍在努力解决您问题的第一部分,但我想我会分享。

编辑

而不是试图停止默认的浏览器行为(您只能在非常有限的基础上做的事情),您应该查看状态管理。ExtJS 在许多组件上都支持它。这是 ExtJS示例

这里也是控制浏览器历史的例子

于 2012-05-29T23:27:46.460 回答