我的appConfig中有以下代码重定向/转换逻辑,用于重新指向无效路由:
$urlRouterProvider.when('/:lang/profile/:keywords/:id', ['$state', '$stateParams', function ($state, $stateParams) {
$state.transitionTo('root.public-profile.summary', $stateParams, {
reload: true,
inherit: false,
notify: true
});
将摘要路由定义为:
state('root.public-profile.summary', {
url: "/summary",
templateUrl: "/templates/public.profile.summary.tpl.html"
})
因此,当用户尝试访问' /:lang / profile /:keywords /:id'它应该将它们重定向/重新指向/:lang / profile /:keywords /:id / summary。如果用户尝试删除“摘要”,则以前加载视图时此方法可以正常工作。来自Url的部分,它会按预期自动重新附加。但是,如果用户复制并粘贴错误的'直接在新的浏览器窗口中链接,$ stateParams对象为空,因此无法进行转换。
这种行为是否有设计,有没有办法解决这个问题?
答案 0 :(得分:0)
你是对的,
这种行为是设计使然。你应该以状态图的形式看到所有内容,过渡是否会发生取决于什么状态被激活。我从你的代码片段中看到的是,你在这里工作ui-router,其中状态比实际网址更重要。 不确定您要实现的目标,但这些文档对您有所帮助。 https://github.com/angular-ui/ui-router/wiki
如果您对此答案有信心,请回复任何其他问题或投票。