Im使用AngularJs和UI路由器構建應用程序。這是一個管理面板採用這種結構:用於受限管理面板的UI路由器結構
- 沒有通過認證
- 驗證的
- 管理員控制檯
- 客戶端面板
對於每個認證的狀態,應用程序需要加載不同的內容並訪問不同的信息,例如:
- 管理:可以看到一個列表與所有客戶,產品等...
- 客戶端:只能看到他的產品,門票等......
當用戶登錄我檢查他是管理員還是客戶端,然後用lazyload加載他需要的模塊。例如,客戶端不需要該模塊來顯示所有客戶端的列表。
這是結構我到目前爲止:
-index.html -> view:main
--login.html
--error.html
-app.html -> view:app
--restricted.html
--notFound.html
-app_adm -> view:app-adm -> lazyload admModule.js
--home_adm.html
--listClient.html
--listProducts.html
--listFinancial.html
etc...html
-app_cli -> view:app-cli -> lazyload cliModule.js
--home_cli.html
--userData.html
--products.html
--tickets.html
etc...html
的index.html
<div ui-view="main"></div>
app.html
<nav>
[..content here..]
</nav>
<div ui-view="app"></div>
<footer>
[..content here..]
</footer>
app_adm.html
<div ui-view="app-adm"></div>
app_cli.html
<div ui-view="app-cli"></div>
感覺就像使用這些2個額外的app
(ADM和CLI)是不完全正確,但是到現在爲止它是唯一我發現載入的文件只在我需要的地方。
有沒有更好的方法來改善這種結構?
注:我試圖設置狀態app-adm
和app-cli
是一個狀態,而不templateUrl並使用相同的視圖狀態app
,但它並沒有奏效。
好吧,它有點棘手..但你這樣做是非常正確的方式...我想你已經處理了什麼客戶端「意外」在管理網址類型,並沒有通過並重新導向回來? ...除此之外,常見的問題應該放在一個共同的文件夾中,並且應該將它們分別放在相應的文件夾中。 – Minato
按照John Papa風格指南,我可以很好地完成文件夾結構。並通過解析函數來控制訪問以檢查用戶角色。即使嘗試並可以以某種方式訪問管理視圖,http請求也會使用令牌驗證來檢查用戶是客戶端還是管理員。唯一令人頭疼的是視圖結構本身..我在那裏會有一個簡單的方法來做到這一點..由於Angular總是有一個非常非常簡單的方式來做事情.. = D – celsomtrindade