如何使用angularjs處理動態選單

2021-12-28 20:26:35 字數 1242 閱讀 5766

1樓:育知同創教育

思路:只要根據使用者角色 顯示該角色可以訪問的選單即可,在每次路由切換的時候判斷下是否有訪問此路由的許可權,沒有就跳轉到指定頁面即可。

如果要想根據角色動態生成路由,可以在angular還沒有啟動的時候獲取該使用者角色的所有路由(也可以說選單),然後迴圈選單 通過 ui-router動態加入即可;

一般專案把所有的js和模板都打包壓縮成一個js,反而效果更好;

2樓:匿名使用者

按照ui-router或者什麼來配置路由,完全可以自己實現一個功能載入器:

$stateprovider

//動態選單

.state("menu", );

然後這個menuloader.html裡面,只放一個ng-include,它的地址關聯到一個動態變數,這個變數根據傳入的那個code去讀取。

在這個state的resolve裡面,根據code獲取到選單對應的html地址,js地址,然後用動態載入控制器的方式把js載入完成,然後把html地址賦值給上一段裡提到的那個變數。

這樣,你就沒有定義多個路由,而是直接用一個路由的配置完成了所有的動態獲取過程,選單以後可以任意無限加,不用改任何公共**。

如何使用angularjs處理動態選單

3樓:匿名使用者

1. 既然你使用了 ui-router,說明你的應用是 單頁程式,既然是單頁程式,首先要考慮動態路由是否有必要?只要根據使用者角色 顯示該角色可以訪問的選單即可,在每次路由切換的時候判斷下是否有訪問此路由的許可權,沒有就跳轉到指定頁面即可;

2. 至於你說的動態載入 是想根據使用者角色動態返回指定角色的路由、模板、controller js嗎?一般專案把所有的js和模板都打包壓縮成一個js,反而效果更好;

3. 如果你非要想根據角色動態生成路由,可以在angular還沒有啟動的時候獲取該使用者角色的所有路由(也可以說選單),然後迴圈選單 通過 ui-router 動態加入即可;

4. 這樣只有路由是動態載入了,關於每個路由對應的js,如果你也想實現 動態載入的話,估計就需要使用類似 requirejs 的東西,比如 marcoslin/angularamd · github 或者 atian25/angular-lazyload · github 或者自己寫一個也可以,原理就是在 路由的 resolve 中載入對應的js

5. 模板感覺就不需要動態載入了吧,因為使用ng,模板都是前端模板,如果要根據角色動態生成模板豈不是變成服務端渲染了。

angularjs如何呼叫外部介面

h5edu教育html5開發 培訓為您解答 angularjs http呼叫介面的四種方式 錯誤處理 promise.error function data,status,headers,config angularjs怎麼呼叫rest服務 實在是不能對jquery的ajax方法和基於頁面dom的各...

如何使用PS處理用相機拍攝下來的鉛筆畫

簡單點就用ps的抽線效果 方法是 開啟要抽線的 複製圖層 影象 調整 去色 再複製去色層 反相 圖層混合模式為顏色減淡 濾鏡 其它 最小值1 正片疊底 向下合併 調整色階 ok 複雜點就抽線之後用鋼筆路徑描邊。這就是類似動漫描稿啊,簡單,用魔術棒工具選擇空白區域刪除,然後選擇描邊路徑,上黑色 可能我...

新買的碗怎麼處理,新碗使用前怎麼處理

家裡新買的餐具,有消毒碗櫃的可放入消毒碗櫃內消毒,如果沒有消毒碗櫃,在家裡用高溫消毒也可,先把新餐具洗淨,再放入高壓鍋或大點的鋁製品的鍋子內,放入冷水至燒開再煮30分鐘即可達到消毒的目的。如果不作消毒處理,只用冷水或開水洗不一定達到消毒目的,餐具從窯廠出來,不只道經過了多少人的手,有搬運的 檢驗的 ...