【问题标题】:Configure Routing for the Angular (ui.router) with a Parameter使用参数为 Angular (ui.router) 配置路由
【发布时间】:2015-12-03 12:42:00
【问题描述】:

使用 AngularJs 和 UI-Router 为多租户前端应用程序设置路由。

例如,当用户键入以下 URL 时,应为 userxyz 加载仪表板,必须通过会话在用户的浏览器中维护该参数,以便用户应该能够浏览其他超链接在应用程序中。

http://servername.com/#/dashboard/userxyz

我正在努力实现这一点,我看过一些教程但无法理解。

这是我的路由配置代码。

(function () {
    'use strict';

    app.config(["$stateProvider", "$urlRouterProvider",
        function ($stateProvider, $urlRouterProvider) {
            $stateProvider
                .state("dashboard", {
                    url: "/dashboard/{tenantid}",
                    templateUrl: "app/components/dashboard/dashboardView.html",
                    controller: "DashboardController"
                })

                .state("people", {
                    url: "/people/{tenantid}",
                    templateUrl: "app/components/people/peopleView.html",
                    controller: "PeopleController"
                })

                .state("contact", {
                    url: "/contact/{tenantid}",
                    templateUrl: "app/components/contact/contactView.html",
                    controller: "ContactController"
                })

                $urlRouterProvider.otherwise("/dashboard/{tenantid}");
        }]);
})();

在我的 index.html 中,我有以下代码在 ui-view 中显示状态:

<div class="row" ui-view>

</div>

而且,我确实设法使用 ui-sref 设置了超链接,具体如下:

<a ui-sref="dashboard">Home</a>
<a ui-sref="people">People</a>
<a ui-sref="contact">Contact</a>

【问题讨论】:

  • 为什么不将tenantid保存在会话或本地存储中?
  • 我不介意尝试一下!会话或本地存储将存储在浏览器中,直到浏览器关闭?如果是的话,你到底推荐什么?顺便说一句,我没有此应用程序的登录页面,可能也没有。这是一个面向客户端的应用程序。
  • sessionStorage 将一直存在,直到您关闭选项卡或浏览器,但 localStorage 会在此之后声明,请明智地使用您需要的内容:D
  • 我尝试从 'ngStorage' 配置 '$localStorage' 服务,但效果不佳。单击超链接时,该值将被重置。如果你有时间,你能给我举个例子吗? :)

标签: javascript angularjs routes angular-ui-router angular-ui


【解决方案1】:

更好的用户本地会话存储以保存租户

根据之前的cmets:

如果你不需要支持ie7(希望如此),尝试使用原生浏览器localStorage,插入一个项目localStorage.setItem('key', 'value')检索localStorage.getItem('key')

在此处查看localStorage 浏览器支持Local Storage Browser Support

【讨论】:

  • 我从登录页面(基于示例的仪表板)抓取租户,然后存储在本地存储中。在整个应用程序的各个控制器上检索此信息。谢谢您的帮助! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 2017-12-02
  • 2011-11-10
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多