背景
信息系統開發中,配置表格、樹和表單的過程占據了開發的近一半的時間(可能更多),如果要支持運行期間修改配置,如:修改表格布局、表單布局、查詢面板,就會更加花費時間。這篇文章我就介紹一下如何使用元數據驅動UI的開發。
思路
支持三級元數據配置:
- 生成期配置:使用代碼生成器生成,只能由生成器修改。
- 運行期配置:使用配置修改器修改,運行期由維護或實施人員修改。
- 開發期配置:由開發人員維護。
三級配置,由上到下優先級越來越高,下級繼承上級同時覆蓋上級。如下圖所示:
實現
配置 + 代碼生成器
生成器項目結構
generated/Metadata.ejs
生成后的應用
項目結構
user/app/view/Grid.js
1 Ext.define('Demo.user.view.Grid', { 2 extend: 'Happy.grid.Panel', 3 alias: 'widget.user_grid', 4 requires: [ 5 'Demo.user.metadata.Manager' 6 ], 7 8 title: 'user grid', 9 10 getMetadataManager: function () { 11 var me = this; 12 13 return Demo.user.metadata.Manager; 14 } 15 });
執行效果
備注
代碼下載:http://happy.codeplex.com/SourceControl/latest。
今天只是介紹了一個思路,我也是剛開始實現這種思路,先分享出來,希望大家多給建議。