2013-03-15 9 views
17

Próbuję uruchomić ExtJS4 Ext.application wewnątrz naszego istniejącego szablonu strony. Mamy numer div #content, w którym chcę umieścić aplikację do programowania. Jak mogę renderować aplikację w tym obszarze, zamiast zastępować istniejącą stronę HTML?Renderowanie Ext.application w div

Ext.application({ 
    name: 'HelloExt', 
    launch: function() { 
     Ext.create('Ext.container.Viewport', { 
      layout: 'fit', 
     // renderTo: Ext.Element.get('#content') doesn't work 
      items: [ 
       { 
        title: 'Hello Ext', 
        html : 'Hello! Welcome to Ext JS.' 
       } 
      ] 
     }); 
    } 
}); 
+1

Naprawdę nie wiem, dlaczego to było downvoted, prosimy o komentarz, gdy robi to. – Reimius

Odpowiedz

16

Musisz użyć innego pojemnika niż Ext.container.Viewport. Przez definfiton Ext.container.Viewport zawsze zajmie całe okno przeglądarki.

Z dokumentacji:

rzutni renderuje się do treści dokumentu, a rozmiary się automatycznie do rozmiaru widoku przeglądarki i zarządza zmiany rozmiaru okna. Może istnieć tylko jedna rzutnia utworzona na stronie.

Wystarczy użyć Ext.panel.Panel zamiast

Ext.application({ 
    name: 'HelloExt', 
    launch: function() { 
     Ext.create('Ext.panel.Panel', { 
      layout: 'fit', 
      renderTo: Ext.get('content') 
      items: [ 
       { 
        title: 'Hello Ext', 
        html : 'Hello! Welcome to Ext JS.' 
       } 
      ] 
     }); 
    } 
}); 
+0

Czy możesz pokazać mi przykład? – user2170010

+0

Wystarczy zamienić 'Ext.container.Viewport' na' Ext.panel.Panel' i odkomentuj opcję 'renderTo' config. I to jest 'Ext.get ('content')' – Mchl

+0

To nie jest #content, właśnie tego potrzebowałem. Dzięki! – user2170010