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
路由正确加载。有什么想法吗?
答案 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'
})