国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angularjs根據json文件動態生成路由狀態的實現方法

2024-05-06 15:18:24
字體:
來源:轉載
供稿:網友

項目上有一個新需求,就是需要根據json文件動態生成路由狀態,查閱了一下資料,現在總結一下發出來:

首先項目用到的是angular的UI-路由,所以必須引入angular.js和angular-ui-router.js兩個js文件,如下例子:

<!DOCTYPE html><html><head>  <meta charset="utf-8">  <title>Example</title>  <script src="bower_components/angular/angular.js"></script>  <script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>  <script src="js/routing.js"></script>  <script src="js/app.js"></script></head><body ng-app="App" ng-controller="MainController"><a ng-click="reload()">reload</a><a ui-sref="xxx">xxx</a><a ui-sref="yyy">yyy</a><div ui-view></div></body></html>

然后是json文件的一些數據,如下

{  "xxx": {    "url": "/xxx",    "templateUrl": "templates/xxx.html"  },  "yyy": {    "url": "/yyy",    "templateUrl": "templates/yyy.html"  },  "ccc": {    "url": "/ccc",    "templateUrl": "templates/yyy.html"  },  "zzz": {    "url": "/zzz",    "templateUrl": "templates/zzz.html"  }}

之后定義一個服務,定義個方法用來配置獲取json文件的ajax請求的地址,主方法是發送ajax并且對結果進行循環寫入路由狀態。

'use strict'angular.module('Routing', ['ui.router'])  .provider('router', function ($stateProvider) {    var urlCollection;    this.$get = function ($http, $state) {      return {        setUpRoutes: function () {          $http.get(urlCollection).success(function (collection) {            for (var routeName in collection) {              if (!$state.get(routeName)) {                $stateProvider.state(routeName, collection[routeName]);              }            }          });        }      }    };    this.setCollectionUrl = function (url) {      urlCollection = url;    }  })

最后是最關鍵的angular配置階段和運行階段的代碼,配置階段要求至少給出一種狀態,如$stateProvider.state('home', {url: '/home',templateUrl: 'templates/home.html'});

并且將默認狀態配置好$urlRouterProvider.otherwise('/home');隨后調用上面的服務的setCollectionUrl 方法對url地址進行配置,方便發送ajax請求,最后在angular的運行階段的run方法中調用setUpRoutes方法將json文件的數據根據一定的格式進行狀態的動態寫入,代碼如下:

angular.module('App', ['ui.router', 'Routing'])  .config(function ($stateProvider, $urlRouterProvider, routerProvider) {    $stateProvider      .state('home', {        url: '/home',        templateUrl: 'templates/home.html'      });    $urlRouterProvider.otherwise('/home');    routerProvider.setCollectionUrl('js/routeCollection.json');  })  .run(function (router) {    router.setUpRoutes();  });            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 北宁市| 潜山县| 舞阳县| 保亭| 苏州市| 高陵县| 漳州市| 阳朔县| 沅江市| 大余县| 连州市| 历史| 安福县| 泉州市| 盐山县| 大宁县| 开江县| 堆龙德庆县| 项城市| 肇州县| 侯马市| 方城县| 衡水市| 称多县| 南宁市| 新邵县| 新和县| 德令哈市| 石台县| 象州县| 灵台县| 霍州市| 阿拉善左旗| 文水县| 北宁市| 隆德县| 乐都县| 深州市| 桦川县| 漳平市| 上虞市|