我正在创建基于 angularjs 的仪表板,我正在使用 ui.router 从 json 文件创建状态, 我的topNavbar 和状态是由pages.json 文件创建的。 我的应用程序工作正常,但当使用此“localhost:#/map”网址刷新页面时,它会重定向到“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"
}]
}
.
.
.
]
最佳答案
当您刷新页面时,您的运行函数会调用并从pages.json读取值,您需要更新pages.json文件或者您需要将url值保存在localstorage或sessionstorage中,以便每当刷新页面时您都可以访问url来自本地存储或 session 存储的值。
关于javascript - 刷新 Angular 应用程序进入默认状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39122014/