Я применил одностраничное приложение angularjs, используя ui-router.
Изначально я определял каждое состояние с использованием отдельного URL-адреса, однако это делалось для недружественных GUID-упакованных URL-адресов.
Итак, теперь я определил свой сайт как гораздо более упрощенную государственную машину. Состояния не идентифицируются по URL-адресам, а просто переходят в соответствии с требованиями:
Определение вложенных состояний
angular
.module 'app', ['ui.router']
.config ($stateProvider) ->
$stateProvider
.state 'main',
templateUrl: 'main.html'
controller: 'mainCtrl'
params: ['locationId']
.state 'folder',
templateUrl: 'folder.html'
parent: 'main'
controller: 'folderCtrl'
resolve:
folder:(apiService) -> apiService.get '#base/folder/#locationId'
Переход к определенному состоянию
#The ui-sref attrib transitions to the 'folder' state
a(ui-sref="folder({locationId:'{{folder.Id}}'})")
| {{ folder.Name }}
Эта система работает очень хорошо, и мне нравится ее чистый синтаксис. Однако, поскольку я не использую URL-адреса, кнопка возврата не работает.
Как сохранить мой аккуратный пользовательский компьютер ui-router, но активировать функцию кнопки "Назад"?