我有以下状态:
$stateProvider.
state('candidates', {
abstract: true,
url: '/candidates',
templateUrl: '/Scripts/App/js/Views/candidates/candidates.html',
controller: 'candidatesTableController'
}).
state('candidates.item', {
url: '/{item:[0-9]{1,4}}',
templateUrl: '/Scripts/App/js/Views/candidates/candidate.html',
controller: 'candidatesDetailController'
}).
state('candidates.item.details', {
url: '/details',
templateUrl: '/Scripts/App/js/Views/candidates/partials/generalDetails.html',
controller: function($scope, $stateParams) {
$scope.item= $stateParams.item;
}
}).
state('candidates.item.edit', {
url: '/details/edit',
templateUrl: '/Scripts/App/js/Views/candidates/partials/form.html',
controller: function($scope, $stateParams) {
$scope.item = $stateParams.item;
}
}).state('candidates.item.photo', {
url: '/details/photo',
templateUrl: '/Scripts/App/js/Views/candidates/partials/updatePhotoID.html',
controller: function($scope, $stateParams) {
$scope.item = $stateParams.item;
}
});
这是我的urlRouterProvider:
$urlRouterProvider
.when('/candidates/:item', '/candidates/:item/details')
.otherwise("/");
当我使用ui-sref时,一切正常,但当我使用实际网址时,它永远无法找到以下网址:
&#34 /#/候选人/ 4 /细节"
它重定向到根(" /#/")
我无法找出原因?
由于
答案 0 :(得分:0)
我用这里定义的路线创建了一个plunkr: http://run.plnkr.co/Sn3s7ooM6MOSxQnB/#/candidates/4/details
此处可见代码: http://plnkr.co/edit/wArFenIZ7j3WczUhtJO6
请注意,此答案中的第一个链接会将您带到候选项目的详细信息页面。也许你可以从我的简化代码中弄清楚你需要改变什么来实现相同的行为。
此外,我注意到您的重定向无效(我的plunker中的第二个导航项允许您在没有重定向的情况下进入此状态;请尝试自行点击):
.when('/candidates/:item', '/candidates/:item/details')
如果您将candidates.item
状态设置为abstract
,则此重定向将有效。也许这就是你想要的。
在此处查看此操作:http://plnkr.co/edit/y9LI0OKGMStVnMY2NX5q
此处可见代码:http://plnkr.co/edit/y9LI0OKGMStVnMY2NX5q
我希望有帮助