Настройка маршрутизации для стороннего приложения с несколькими арендаторами с использованием 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>
Лучшее пользовательское локальное хранилище сеансов для сохранения арендатора
Согласно комментариям до:
Если вам не нужна поддержка ie7 (надеюсь, что так), попробуйте использовать собственный браузер localStorage
, чтобы вставить элемент localStorage.setItem('key', 'value')
для извлечения localStorage.getItem('key')
см. localStorage
браузера localStorage
здесь. Поддержка локального хранилища данных