历史和选择模型问题

时间:2012-05-29 18:17:36

标签: extjs extjs-mvc extjs4.1 selectionmodel

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

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

对于history实用程序,我需要实现浏览器后退按钮。特别是我想禁用浏览器的刷新按钮。如果用户打开让我们说15个标签并且不小心点击浏览器刷新或“F5”他/她将失去一切。我尝试过很多东西,但没有运气。我无法理解“Ext history util”。所以,

那里有什么好的例子吗?

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

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

1 个答案:

答案 0 :(得分:1)

停止刷新事件非常简单 - 只要您的页面具有焦点即可。 E.g:

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

如果您的页面没有焦点,那么就没有什么可以做 - 但是大多数情况下,当打开不同的浏览器选项卡时,您的页面会失去焦点,因此无论如何F5都会刷新该页面。 / p>

我仍然试图围绕你问题的第一部分,但我想我会分享它。

修改

您应该查看state management,而不是尝试停止默认的浏览器行为(您只能在非常有限的基础上执行此操作)。 ExtJS在许多组件上支持它。这是ExtJS example

此处还有控制浏览器历史记录的example