【发布时间】:2016-01-08 22:58:29
【问题描述】:
在我的 Angular 应用中,我有这样的路由结构:
.state('mapping', {
url: '/mapping',
templateUrl: 'app/components/mapping/mapping.html',
controller: 'MapCtrl as map',
abstract: true,
authenticate: true
})
.state('mapping.all', {
url: '',
templateUrl: 'app/components/mapping/partials/all.html',
authenticate: true
})
.state('mapping.project', {
url: '/:projectName',
controller: 'ProjectCtrl as proj',
templateUrl: 'app/components/mapping/partials/project.html',
authenticate: true
})
预期的功能是,当用户访问'mapping.project' 时,应用程序将使用projectID 变量加载与该项目相关的所有相关信息,该变量使用ui-sref 通过$stateParams 传递(不可见):
ui-sref="mapping.project({projectId: project.id, projectName: project.name})"
但是这会导致不希望的行为:当用户在已经处于 'mapping.project' 状态时重新加载页面时,将不会加载任何内容,因为没有有效地传递 $stateParams。
在重新加载时获取projectId(并确保我的控制器再次启动)而不在 URL 上显示的最佳方法是什么?
【问题讨论】:
标签: javascript angularjs angular-ui-router parameter-passing state