提供以下代码:
$stateProvider
.state('app.users', {
abstract: true,
url: '/users',
templateUrl: 'views/users.html',
resolve: {
userId: Users => Users.lastUserSelected()
},
})
.state('app.users.questions', {
url: '/:userId/questions',
templateUrl: 'views/questions.html',
controller: 'UsersQuestionsCtrl',
resolve: {
questions: (userId) => Questions.getAll(userId)
}
})
当我转到app.users.questions状态时,一切正常,但浏览器中的URL最终就像mydomain.com/users//questions(注意路线中的双正斜杠//,那里& #39; s no userId)
似乎从父状态解析的用户ID未在子路由中填充,或类似的东西。我想我在这里错过了一个关键概念。
我想获得像mydomain.com/users/USERID/questions这样的网址。
我已经通过了许多ui-router指南,但无法解决这个问题,我们非常感谢任何帮助。
我使用来自MEANJS项目的addMenuItem和addMenuSubItem方法填充我的sideBar菜单。
Menus.addMenuItem('sidebar', {
state: 'app.users',
type: 'dropdown',
iconClass: 'fa fa-comments',
position: 4,
roles: ['*']
});
Menus.addSubMenuItem('sidebar', 'app.users', {
state: 'app.user-questions'
});
注意:
1-以前的状态并不重要,无论我来自哪个州......它与用户根本没有关系,所以从所有可能的先前状态传递:userId听起来不对对我来说。我只是以USERS和QUESTIONS为例,但这些并不是我在实际项目中使用的实体。
2 - 我正在使用MEANJS种子项目