【发布时间】:2015-05-15 16:12:16
【问题描述】:
我正在使用 Angular ui 路由器,如下所示:
angular
.module('app', [
'ui.router'
])
.config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('start', {
url: '/',
templateUrl: 'templates/start.html',
controller: 'startCtrl'
})
.state('dictionary', {
url: '/dictionary',
templateUrl: 'templates/dictionary.html',
controller: 'dictionaryCtrl'
})
}])
这很好用。
现在我想做的是继续从 /dictionary 构建 URL。
基本上,字典将包含一组重复的 li 元素,这些元素是基于对象数组呈现的。 请注意,对象数组是从可能不时包含不同对象集的源中检索的。
<ul>
<li ng-repeat="element in array">
{{element}}
</li>
</ul>
通过单击上述列表中的元素,控制器将更新数组并根据子元素将上述列表重新渲染到源中的相应元素。
现在解决问题
首先,我希望将网址附加为:
/dictionary/selectedelement
如果我会在我的浏览器中回击我希望返回
/dictionary
如果我要添加书签
/dictionary/selectedelement
我希望能够根据最后一个 url 段呈现列表。
如果可能的话,我也想使用相同的控制器。
【问题讨论】:
-
你是说你有一个项目的层次结构?级别 1(就在根目录下)显示在
/dictionary上,子树显示在/dictionary/nodeXId/nodeYId/...上等等? -
使用
/dictionary/:selectedelement有什么问题? github.com/angular-ui/ui-router/wiki/URL-Routing#url-parameters
标签: angularjs angular-ui-router single-page-application browser-history