最佳答案
我使用 路由器实现了一个 angularjs 单页应用程序。
最初,我使用一个不同的 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 }}
这个系统工作得非常好,我喜欢它简洁的语法。但是,因为我没有使用网址的后退按钮不工作。
如何保持我整洁的 ui-router 状态机,但启用后退按钮功能?