UI-路由器:父抽象时子状态中的状态参数

UI-Router: state params in child state when parent abstract

我有以下 ui-路由器定义:

    $stateProvider
        .state('main', {
            abstract: true,
            url: '/main',
            templateUrl: 'partials/wrapper.html',
            controller: 'WrapperCtrl'
        })
        .state('main.notidetails', {
            controller: 'NotificationsDetailsCtrl',
            url: '/notidetails/:id',
            params: ['id'],
            templateUrl: 'partials/notificationDetails.html'
        });

但是启动应用程序时我得到:

Error: Both params and url are specified in state 'main.notidetails'

我应该怎么做?我希望 'notidetails' 保留为子状态并拥有它的参数

我认为错误说明了一切。您必须在 URL 或 params 中使用参数。从您所在的州删除 params。将 $stateParams 注入到你的状态控制器,你可以像这样访问你的参数 $stateParams.id.

因此您的代码将如下所示:

$stateProvider
    .state('main', {
        abstract: true,
        url: '/main',
        templateUrl: 'partials/wrapper.html',
        controller: 'WrapperCtrl'
    })
    .state('main.notidetails', {
        controller: 'NotificationsDetailsCtrl',
        url: '/notidetails/:id',
        templateUrl: 'partials/notificationDetails.html'
    });