javascript - ExtJs 4 ViewPort 与带有边框布局的面板 - 使用哪个以及为什么?

标签 javascript html extjs extjs4

我已经开始使用 ExtJs 4 开发一个新应用程序。我是 ExtJs 的新手。读完ExtJs教程后,我觉得Panel和ViewPort几乎是一样的。然而,一次只有一个视口(viewport),因为我们可以有许多面板和嵌套面板。我有以下场景: 我的页面为:Page1.html、Page2.html、Page3.html。全部都有 extjs 组件。 我想加载Page1.html。 Page1.html 中的选项卡内的 Page2.html。 Page1.html 选项卡内的 Page3.html。

我的问题是: - 为什么在面板上使用 ViewPort? ViewPort 相对于 Panel 有何优势? - 如何使用 autoLoad 和 url 将 Page2.html 加载到 Page1.html 中?我尝试了下面的代码,但 Page2.html 中的 java 脚本未执行。

{ 
    title : 'Tab3',  
    loader: {
        autoLoad: true,
        url: 'Page2.html',
        renderer: 'html',
        scripts : true, //However script in Page2.html is not executed
    }
}

感谢任何帮助?

最佳答案

两者的目的ViewportPanel是相当不同的。它们在两个方向上都不可互换。它们的共同点是它们可能包含其他组件或一些 Web 内容,因为两者都是 Containers .

面板是在网页中组织内容的基本结构。它可以放置到另一个容器(例如面板、窗口或视口(viewport))中,并且可以在内部组织其他组件。它非常有用,并且被应用程序和 ExtJs 框架本身大量使用。

视口(viewport)是唯一的 - 它代表浏览器的窗口,这就是为什么页面中只能有一个视口(viewport)。其他组件可以放置在其中,但它不能放置在任何地方(它的位置和大小是由浏览器窗口决定的,而不是其他任何东西)。

你似乎在摆弄 ComponentLoader ,但你还没有清楚地解释你的目标是什么。如果将 Page2.html 的内容加载到 Page1.html 的视口(viewport)中,则会将其所有内容替换为 Page2.html。如果您对 Page1.html 中的某些面板执行相同的操作,则只会替换面板的内容。
并且 - Page2.html 应设计为“给我面板的内容”。

关于javascript - ExtJs 4 ViewPort 与带有边框布局的面板 - 使用哪个以及为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934929/

相关文章:

javascript - 单击时如何使我更改为另一个图像的图像?

javascript:多行和单行的优势是什么?

javascript - react 物化模式不是一个功能

html - 100% 宽度、填充和绝对定位

javascript - 如何将Json数据转换为EXTJS中的变量

javascript - Ajax 帖子未完成

html - Bootstrap 响应式按钮链接在一列中

html - 我可以在样式表中使用最小宽度和最大宽度吗

javascript - 使用 ExtJS 创建对象时出错

javascript - ExtJS TreePanel RESTful 支持