将Angular应用程序刷新到默认状态

Refreshing Angular App takes to the default state

本文关键字:默认 状态 刷新 Angular 应用程序      更新时间:2023-09-26

我正在创建基于angularjs的dashboard,我使用ui。路由器从json文件中创建状态我的topNavbar和状态是由页面创建的。json文件。我的应用程序工作正常,但当刷新这个"localhost:#/map"url页面时,它重定向到"localhost:#/dashboard"状态。如何设置用户在URL中输入的状态?

var $urlRouterProviderRef = null;
var $stateProviderRef = null;
 myApp.run(function ($q, $rootScope, $state, $http, navbars)
        {
           navbars.load()
            $http.get("js/config/pages.json")
                .success(function (data) {
                    angular.forEach(data, function (value, key) {
                        var state = {
                            "url": value.url,
                            "templateUrl": value.templateUrl,
                            "controller": value.controller
                        };
                        $stateProviderRef.state(value.sref, state);
                    });

                });
              }
myApp.config(function ($stateProvider, $locationProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise('/dashboard');
        $urlRouterProviderRef = $urlRouterProvider;
        $stateProviderRef = $stateProvider;
    })

pages.json

[
{
    "displayname": "Dashboard",
    "active": true,
    "name": "dashboard",
    "sref": "dashboard",
    "url": "/dashboard",
    "controller": "layoutOneCtrl",
    "templateUrl": "views/dashboard.html",
    "icon": "fa-dashboard",
    "children": [{
        "name": "dashboard"
                }]
            }, {
    "displayname": "Map",
    "open": false,
    "active": false,
    "name": "map",
    "sref": "map",
    "url": "/map",
    "templateUrl": "views/layout1.html",
    "controller": "layoutOneCtrl",
    "icon": "fa-map-marker",
    "children": [{
        "name": "map"
                }]
     }
     .
     . 
     .
    ]

刷新页面时,调用run函数并从页面读取值。Json,您需要更新页面。或者你需要将url值保存在localstorage或sessionstorage中,这样当你刷新页面时,你就可以从localstorage或sessionstorage访问url值。