Ui-router状态,在页面重新加载时无法识别状态参数

时间:2015-10-03 07:41:47

标签: javascript angularjs angular-ui-router

ui-router的情况非常奇怪。我有一个像这样定义的状态:

.state('profileQuestion', {
        url: '/profile-questions/:profileQuestionId',
        templateUrl: 'client/users/views/profile-question.ng.html',
        controller: 'profileQuestionCtrl'
 })

当我在应用程序中导航时,它工作正常,花花公子。但是,如果我直接访问此页面,例如localhost:3000/profile-questions/1,该应用无法识别该页面,并会立即尝试转到otherwise路径。

$urlRouterProvider.otherwise('/login');

更重要的是,它实际上转移到/profile-questions/login而不只是/login!用于配置文件问题的控制器永远不会被调用。总而言之,当我从另一个页面导航到该页面时,这个ui路由器工作正常,但是当我自己加载页面时失败了。我应该补充一点,如果我删除状态参数选项:profileQuestionId,则/profile-questions路由正确加载。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

正如@Radim Kohler和@Joe Lloyd所说,问题是HTML5模式已经开启。我现在看到服务器认为我在/ profile-questions /目录中找东西 - 它不存在。为了解决这个问题,我只是将其更改为查询字符串参数,如下所示:

.state('profileQuestion', {
        url: '/profile-question?profileQuestionId',
        templateUrl: 'client/users/views/profile-question.ng.html',
        controller: 'profileQuestionCtrl'
 })