【问题标题】:URL not finding state ( ui.router and angularjs)URL 未找到状态(ui.router 和 angularjs)
【发布时间】:2014-06-10 19:09:38
【问题描述】:

我有以下状态:

$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 时一切正常,但是当我使用实际 url 时,它永远找不到以下 url:

"/#/candidates/4/details"

它重定向到根目录(“/#/”)

我不知道为什么?

谢谢

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

    我创建了一个 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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2018-08-19
      • 2016-09-26
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      相关资源
      最近更新 更多