Extjs中的多个视口

时间:2012-06-28 04:11:37

标签: model-view-controller extjs viewport

我有100个不同的url,每个都指向普通的html页面,我必须将这些普通的html页面转换为extjs页面。所有页面的页脚和页眉都相同,但不同的普通html页面的中心部分不同。 为了利用最大的代码我想创建一个EXTJS4.1.0应用程序,它将具有模型,视图,存储和控制器,但是单独的index.html,app.js和viewport.js。单独的index.html,app.js和viewport.js的原因是,如果我不保留单个index.html,app.js和viewport.js那么我将无法为页面添加书签(因为用户和使用100个不同页面的100个不同的网址)所以基本上我将有100个不同的app.js和相应的viewport.js(viewport.js将有页脚/标题等常用组件和屏幕的特定组件)但在一个时间点只有一个index.html,app.js和viewport.js将处于活动/运行状态。

我的第一个问题是,我刚才提到的解决方案是正确的解决方案。

在Extjs MVC模式中,如果使用autoCreateViewport:true,则每个应用程序只能有一个Viewport.js文件。

其次如果在Ext.Application中使用autoCreateViewport:false(在app.js中)并在启动方法中创建不同Viweport的实例,如下所示:

Ext.application({
    name: 'Panda',
    autoCreateViewport: false,
    launch: function() {
        Ext.create('Panda.viewport.ViewportOne')
    }
});

请注意,我创建了ViewportOne的实例,它是100个视口之一。使用此解决方案,我在运行应用程序时遇到了毛刺(某些导航将无法正常工作等)。是因为extjs不允许带有名称的视口,例如Panda.viewport.ViewportOne,Panda.viewport.ViewportTwo等。

如何在Extjs中创建具有可收藏页面的完全MVC样式应用程序,使每个页面都是同一个extjs应用程序的一部分(即它利用相同的模型视图,存储,控制器和动态加载)。

1 个答案:

答案 0 :(得分:0)

我工作的公司有很多客户使用的是基于普通html和javascript构建的应用程序。每个用户只在该应用程序的一个页面上工作,他在浏览器上添加了书签。 我给出的任务是将那些简单的html / javascript页面升级到Extjs,这样就不用更新他们的书签了。

在我的最后我想在Extjs 4.1.0中创建单个应用程序,它将有100个页面(index.html,indexOne.html等用户将书签),如果哪个可以使用通用的模型/视图/存储和控制器

所以基本上我对应用程序的入口点会有所不同,但所有页面都将使用相同的模型/视图/存储/控制器。 它更像是一个建筑问题。

希望得到这个帮助。