Передать значение в состояние маршрутизатора - PullRequest
0 голосов
/ 28 января 2019

В моем веб-приложении у меня есть маршрут панели инструментов:

$stateProvider.state('dashboard', {
    url: '/dashboard',
    parent: 'root',
    abstract: true,
    redirectTo: 'dashboard.tasks',
    views: {
        'new@': {
            templateUrl: '/Modules/Dashboard/Dashboard.html',
            controller: 'DashboardController'
        }
    },
    onEnter: [ () => {
        console.log('dashboard enter');
        if (passedThroughValue === 'timeline') {
            console.log('dashboard enter from timeline');
        }
    }]
});

Из моего timeline.html У меня есть эта ссылка:

ui-sref="dashboard.tasks.overview.details.information({ id: activity.task.id })"

Когда я нажимаю, я маршрутизируюсьв состояние приборной панели, и я вижу консольный журнал dashboard enter.Но, очевидно, не dashboard enter from timeline.

Как передать строковое значение в этой ссылке в состояние маршрутизатора, чтобы я мог узнать, откуда пользователь перемещается на панель мониторинга?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Вы можете передать $stateParams в свой onEnter, а затем прочитать его свойства

onEnter: ['$stateParams', ($stateParams) => {
    console.log('dashboard enter');
    if ($stateParams.passedThroughValue === 'timeline') {
        console.log('dashboard enter from timeline');
    }
}]

После этого вы можете передать passedThroughValue при перенаправлении с ui-sref

0 голосов
/ 28 января 2019

https://docs.angularjs.org/api/ngRoute/service/$routeParams [Пожалуйста, просмотрите это руководство по ссылке, у angularjs есть собственный RouteParam, который позволяет передавать значение по ссылке]

...