有了編寫用戶管理的控制器的經驗,寫這個問題應該不大。不過,文章管理的控制器還是要考慮一下怎么寫這個問題,因為在視圖里涉及分類的操作和文章的
操作。這確實是一個比較費神的事。在這里,問題的焦點就是需要不需要拆分的問題了。根據松耦合的原則,必然是拆分的,但是拆得太小,太凌亂,寫代碼是比較
痛苦的,尤其是象Javascript這樣靈活但結構不太嚴謹的語言。
筆者開發大型系統經驗不多,因而一向比較隨心所欲,方便不礙事就好,因而,筆者在這里傾向于不進行拆分,就單獨一個控制器,有興趣的讀者可以嘗試自己拆分一下。
在Scripts\app\controoler目錄下,創建一個名稱為Content.js的控制器,根據用戶管理的控制器的經驗,先寫下以下代碼:
Ext.define('SimpleCMS.controller.Content',{
extend: 'Ext.app.Controller',
models: [
'Category', 'CategoryTree','CategoryCombo', 'Content'
],
stores: [
'CategoriesTree', 'CategoriesCombo','Contents'
],
views: [
],
refs: [
],
init: function () {
me.control({
});
}
});
代碼中,以把所有模型和Store包括進控制器了。視圖還沒創建,因而還沒有定義。引用也是一樣。
現在切換到MainPanel的控制器,在“#contentPanel”的activate事件監聽代碼下,刪除console.log的代碼,添加以下代碼:
this.application.getController('Content').init();
這樣,文章管理的控制器就被加載到應用了,后續的工作就是在文章管理控制器的init方法內實現視圖的加載了。
還要修改一下MainPanel視圖的activeTab配置項,修改回0,讓文章管理標簽頁顯示為默認標簽頁。
至此,控制器的工作告一段落,接下來的就是定義視圖,然后完成控制器的操作了。