2

ExtJs 4 を使用して新しいアプリケーションの作業を開始しました。ExtJs は初めてです。ExtJs のチュートリアルを読んだ後、Panel と ViewPort はほとんど同じように思えます。ただし、多くのパネルとネストされたパネルを持つことができるのは、一度に 1 つの ViewPort だけです。次のシナリオがあります: Page1.html、Page2.html、Page3.html のページがあります。すべてに extjs コンポーネントがあります。Page1.html をロードしたい。Page1.html のタブ内の Page2.html。Page1.html タブ内の Page3.html。

私の質問は: - なぜ ViewPort over Panel を使用するのですか? Panel よりも ViewPort の利点はありますか? - autoLoad と URL を使用して Page1.html 内に Page2.html を読み込むにはどうすればよいですか? 以下のコードを試しましたが、Page2.html 内の Java スクリプトが実行されません。

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

助けていただけませんか?

4

3 に答える 3

3

ビューポートパネルの目的はかなり異なります。それらはどちらの方向にも交換可能ではありません。共通しているのは、両方ともContainersであるため、他のコンポーネントまたは一部の Web コンテンツが含まれている可能性があることです。

パネルは、Web ページでコンテンツを整理するための基本的な構造です。別のコンテナ (パネル、ウィンドウ、またはビューポートなど) に配置することができ、内部の他のコンポーネントを整理できます。これは非常に便利で、アプリケーションと ExtJs フレームワーク自体の両方で頻繁に使用されています。

ビューポートは唯一のものです。これはブラウザのウィンドウを表し、そのため、ページにビューポートを 1 つしか持つことができません。他のコンポーネントをその中に配置することはできますが、どこにも配置することはできません (位置とサイズはブラウザのウィンドウによって指定されます)。

ComponentLoaderをいじっているようですが、目標が何であるかを明確に説明していません。Page2.html のコンテンツを Page1.html のビューポートにロードすると、すべてのコンテンツが Page2.html に置き換えられます。Page1.html の一部のパネルで同じことを行うと、パネルのコンテンツのみが置き換えられます。
そして - Page2.html は「パネルのコンテンツを渡す」ように設計する必要があります。

于 2013-09-21T23:09:53.237 に答える