萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> Ext JS添加子組件的誤區探討

Ext JS添加子組件的誤區探討

經常會有人問我,為什麼我的Grid不能歲窗口的變得而自動調整。了解後,發現很多人都習慣在渲染子組件的時候將Gird渲染到容器內的一個div裡,而這正是問題的所在。

在Ext JS的布局系統中,能控制到的是容器的子組件,而對於渲染到容器中一個DIV的Grid,它並不知道在這容器裡添加了一個Grid,當調整大小的時候,也就無法去調整Grid的大小了,而這也就是為什麼Grid不會隨容器的改變而改變了。

為什麼那麼多人喜歡使用這種方式來添加子組件呢?我想原因主要有以下兩點:
1.不知道如何在容器內添加子組件,
2.習慣了使用JQuery等其他框架的開發方法,一時無法改變

第一個原因,只要是動態添加Grid,搞到很多初學者束手無策,譬如,我的Grid要從遠程返回後才知道怎麼創建,我怎麼去拿這個腳本和添加到容器呢?筆者在學習Ext JS也犯過這樣的錯誤,可以理解。所以,本文的作用就是來解惑的。

辦法有兩個:一是,使用Ajax把整個Grid(或其他組件的配置對象)加載到本地,然後使用容器的add方法就可以將組件添加到容器;一是直接使用容器的load功能,直接加載子組件並渲染,返回的數據就是子組件的配置對象。

第二個原因是習慣問題,只能自己去修正了,盡快熟悉Ext JS的開發模式就可以很容易改掉這個習慣。

如果是使用Ext JS 4的MVC做開發,基本不會出現這麼尴尬的情況了,因而可以將子組件做成視圖,然後在控制器中將視圖添加到容器中就可以了。

 
copyright © 萬盛學電腦網 all rights reserved