无法导航到州

时间:2014-10-17 10:20:54

标签: angularjs

我已经定义了编辑状态/编辑,当我点击编辑实例D1时,它不会转到该路线

<a ng-href="#/instance/edit">Edit Instance D1</a>

JS

routerApp.config(function($stateProvider, $urlRouterProvider) {

$urlRouterProvider.otherwise('/home');
$stateProvider
    .state('home', {
        url : '/home',
        templateUrl : 'instance-view.html',
        controller : 'instanceListController'
    })
    .state('instance', {
        url : '/instance',
        abstract: true,
        template: '<ui-view/>'
    })
    .state('instance.detail', {
        url : '/:id',
        templateUrl : 'data-view.html',
        controller : 'specDataListController'
    })
    .state('instance.edit', {
        url: '/edit',
        templateUrl : 'edit-table.html',
        controller : 'editInstanceController'
    });

});

Plnkr:http://plnkr.co/edit/1jyReALiXSpB0dJmmuQu?p=info

1 个答案:

答案 0 :(得分:1)

JB Nizet所述,路由器会将编辑解释为id,而不会点击/ edit。

根据JB Nizet的建议,您可以为您的ID使用数值,并将以下内容添加到您的路线中:

url : '/{id:[0-9]{1,8}}'

或者您可以使用包含非数字字母的ID并在视图中分割您的路线:/ id和edit /:id:

.state('instance.detail', {
            url : '/view/:id',
            templateUrl : 'data-view.html',
            controller : 'specDataListController'
        })
        .state('instance.edit', {
            url: '/edit/:id',
            templateUrl : 'edit-table.html',
            controller : 'editInstanceController'
        });

您还必须更新观看中的链接。

查看我的Plunker