javascript - Angular UI-router - 在更多状态下保留 url 参数

标签 javascript angularjs angular-ui-router

我正在尝试使用 UI-router 构建一个类似于 Google Analytics 的应用程序。在第一页上有许多网站配置文件,当我选择一个配置文件时,无论我在哪个 GA 页面(报告、自定义、管理),其 id 都会保留在 url 中。

我不知道如何使用 UI 路由器来完成此操作。最简单的答案可能是将个人资料 ID 放入每个状态 url 以及部分 View 中的每个链接中。这将很难维护。

我想在网址中保留个人资料 ID 有两个原因:

  • 启用书签和页面刷新
  • 允许用户在不同的浏览器选项卡中使用不同的配置文件

这样做的正确方法是什么?

最佳答案

你可以这样做:

– 像这样定义状态

.state('yourState', {
    url: 'state/:paramOne/:paramTwo',
    templateUrl: 'yourstate.html',
    controller: 'YourStateCtrl'
})

– 使 $stateParams 在您的 View 中可访问

app.run(function ($rootScope, $state, $stateParams) {
    $rootScope.$stateParams = $stateParams;
});

– 将当前的 $stateParams 值应用于 View 中的链接;如果尚未定义 - 使用默认值(可能是 $rootScope.defaultParamOne = ''; $rootScope.defaultParamTwo = ''; )

<a ui-sref="yourState({
    paramOne: $stateParams.paramOne || defaultParamOne, 
    paramTwo: $stateParams.paramTwo || defaultParamTwo
})">your state</a>

这样 ui-router 将从当前 url 获取参数并使用它来构建链接。

关于javascript - Angular UI-router - 在更多状态下保留 url 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24257215/

相关文章:

angularjs - 改变状态什么也不做

javascript - 带有状态的 Angular UI Router View

java - 如何将 Spring MVC 与 AngularJS ui-router 一起使用?

javascript - 无法解析模块 'react-redux/lib/components/connect'

javascript - HTML 中使用异步管道检索数据的 Angular 6 问题

javascript - 制作几个js函数的for循环

javascript - JSON 数组去重

angularjs - 使用选择清除angularJS中的过滤器

javascript - 是否可以在没有背景网格的情况下进行分页?

angularjs - 当一个相同的 javascript 工作时,为什么 coffeescript angular demo 在 jsfiddle 中失败?