将 Webapp 从 ExtJS 3 和 DWR 更新到 ExtJS 5

Posted

技术标签:

【中文标题】将 Webapp 从 ExtJS 3 和 DWR 更新到 ExtJS 5【英文标题】:Updating Webapp from ExtJS 3 & DWR to ExtJS 5 【发布时间】:2014-10-29 09:06:20 【问题描述】:

我们有一个使用 ExtJS 3.4 的 Web 应用程序(我知道,它很旧),现在我们要将它迁移到 ExtJS 5.0。 但在我们使用 DWR 框架的应用程序中,在 ExtJS 5 中,旧版本无效。 我们使用它的方式是:

myStore = new Ext.data.Store(
     id: 'settingStore',
     proxy: new Ext.ux.data.DwrProxy(
     apiActionToHandlerMap: 
           read: 
              dwrFunction: DAO.getSettingsList,
              getDwrArgsFunction: function(request) 
                 return [];
              ,
              getDwrArgsScope: this
           
     
 ),

所以目前,这对 ExtJS 5 无效。ExtJS 4 的 DwrProxy 对 ExtJS 5 http://kalmatrongeorgia.ge/dwrExtjs4Store/DwrProxy.js 有效吗?还是我们需要另一个实现?

我正在尝试将其用作:

var store = Ext.create('Ext.data.Store', 
        // destroy the store if the grid is destroyed
        autoDestroy: true,
        model: 'Setting',
        proxy: new Ext.ux.DwrProxy(
            read: 
                dwrFunction: DAO.getSettingList,
                getDwrArgsFunction: function(request) return [];, 
                getDwrArgsScope: this
            ,
            write: 
                dwrFunction: DAO.applySettingList,
                getDwrArgsFunction: function(request) return [];,
                getDwrArgsScope: this
            

        ),

但我得到了错误:

TypeError: this.addEvents 不是函数 this.addEvents('exception');

我该怎么办?? (我有点松了,卡在里面了)

【问题讨论】:

【参考方案1】:

其作者似乎尚未将 DWR 代理更新到当前的 Ext 版本。谷歌搜索,我只找到了Ext 4 version,这似乎也被遗弃了。

您需要自己更新或联系原作者更新代理。

【讨论】:

好的。谢谢,我认为这将是一项艰巨的任务。 你总是可以雇人为你做这件事...... ;)【参考方案2】:

您必须自己更新它。我想这应该很容易做到,只要所有更改都在 Sencha Docs 中有详细记录。您提到的一个错误已明确记录:

http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.mixin.Observable-method-addEvents

在更新该代理时,您可以学到很多关于 ExtJS 的知识,完成后您会感到重生。

【讨论】:

以上是关于将 Webapp 从 ExtJS 3 和 DWR 更新到 ExtJS 5的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS5 ViewController 侦听器未触发

java如何将html静态模板写入数据库+和如何从数据库中读出

DWR 3.0 入门示例教程(简单实例)

无法将 extjs 3 迁移到 extjs 4

ExtJs 3.4:从网格中获取所有记录并将它们传递到 servlet

dwr找不到后台的类