параметры состояния ui-роутера в объекте данных - PullRequest
1 голос
/ 26 апреля 2019

Я использую данные состояния ui-router, чтобы решить, какой заголовок страницы отображать на странице.У меня есть конкретный сценарий, в котором одно государство может иметь 2 разных заголовка страницы, потому что оно является общим.

Скажем, у меня есть заголовки страниц «Директора» и «HR».Эти параметры передаются в состояние с помощью $state.go('main.employees', { pageType: 'HR' });

. Как я могу получить данные для возврата params.pageType, например data: { pageTitle: this.params.pageType }.Есть ли способ получить параметры в данных?

.state('main.employees', {
    url: '/employees',
    params: {
        pageType: null
    },
    views: {
        'content': {
            templateUrl: 'app/employees/employees.html',
            controller: 'employeesCtrl as vm'
        }
    },
    data: {
        pageTitle: this.params.pageType    //<-- I have problem here
    }
})

Я должен использовать params.pageType только в этом конкретном случае, потому что другие состояния не имеют этот параметр.Я полагаюсь на $state.$current.data.pageTitle, чтобы отобразить его.

Я тоже пробовал это, но затем при вызове с помощью $state.$current.data.pageTitle() я получаю неопределенное ...

data: {
   pageTitle: function($state) {
      return $state;
   }
}

1 Ответ

0 голосов
/ 26 апреля 2019

Нет необходимости использовать свойство data . Вы можете напрямую использовать параметры в контроллере, используя сервис $ stateParams. Ex-

$state.go('main.employees', { pageType: 'HR' });            
$state.go('main.employees', { pageType: 'Directors' });

И в контроллере получить доступ к параметрам, указанным ниже -

console.log ($ stateParams.pageType)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...