3 回答

TA貢獻1765條經(jīng)驗 獲得超5個贊
思路:只要根據(jù)用戶角色 顯示該角色可以訪問的菜單即可,在每次路由切換的時候判斷下是否有訪問此路由的權(quán)限,沒有就跳轉(zhuǎn)到指定頁面即可。
如果要想根據(jù)角色動態(tài)生成路由,可以在angular還沒有啟動的時候獲取該用戶角色的所有路由(也可以說菜單),然后循環(huán)菜單 通過 ui-router動態(tài)加入即可;
一般項目把所有的js和模板都打包壓縮成一個js,反而效果更好;

TA貢獻1810條經(jīng)驗 獲得超5個贊
按照ui-router或者什么來配置路由,完全可以自己實現(xiàn)一個功能加載器:
$stateProvider
//動態(tài)菜單
.state("Menu", {
url: "/menu/:code",
templateUrl: "modules/menuloader.html"
});
然后這個menuloader.html里面,只放一個ng-include,它的地址關(guān)聯(lián)到一個動態(tài)變量,這個變量根據(jù)傳入的那個code去讀取。
在這個state的resolve里面,根據(jù)code獲取到菜單對應(yīng)的html地址,js地址,然后用動態(tài)加載控制器的方式把js加載完成,然后把html地址賦值給上一段里提到的那個變量。
這樣,你就沒有定義多個路由,而是直接用一個路由的配置完成了所有的動態(tài)獲取過程,菜單以后可以任意無限加,不用改任何公共代碼。
添加回答
舉報