為適應不同開發人員,abp rezo的UI實現了spa和mpa兩套;
spa——Single-page Application(單頁面應用),默認“http://localhost/Account/Login”登錄后轉到spa界面。spa是基於angluarjs開發,angluarjs優點不細說,但學習成本較高;
mpa——Multi-page Application (多頁面應用),地址:
“http://localhost/Mpa/Dashboard”。mpa基於jquery開發,優點是無痛上手,而angluarjs的優點即是jquery的不足,也就是mpa的不足。
這里主要總結開發一個功能模塊時,后端程序員和前端程序員的分工。其中重點說前端,Spa模式:
假定測試網址為:http://localhost/
后端開發:
后端從domain(領域層)到application(應用層)開發完。由於abp zero集成swagger,此時所有API都可從http://localhost/swagger/ 查看和測試。
前端開發:
第一步:創建angularjs的視圖頁和控制器。
第二步:添加angularjs路由;
第三步:在菜單提供者中添加對應菜單項,具體位置:web中"app/startup/AppNavigationProvider.cs"。
雖然這是后端代碼,但由於涉及前端菜單圖標、路由名等,前端開發人員編寫更為適合,當然需要后端人員做配合。
下面舉例說明:
假定有“Region(行政區)”的功能模塊,swagger查看Region模塊的API,如圖:


接下來需要前端程序員出馬了:
第一步:創建angularjs的視圖頁和控制器,如圖:


第二步:在App/app.js里添加angularjs路由,如圖:


注意:由於abp zero已經對app文件夾下所有css和js一並用Bundle做加載,所以路由里不再指定Region模塊的控制器地址。
Bundle配置如圖:


第三步:在“AppNavigationProvider.cs”中添加了對應的菜單項,如圖:


最終效果如圖:


對於如何生成以上導航菜單,這主要依賴abp的動態js。abp動態生成js中的“/AbpScripts/GetScripts”包含了會話、本地化、菜單、權限許可等內容,非常便利。若想深入了解,可打開此js做進一步研究:

