Передайте параметры состояния с помощью URL Routing на новую вкладку в AngularJS, не показывая в URL - PullRequest
0 голосов
/ 11 марта 2019

Я использую AngularJS с UI-роутером. Я пытаюсь передать параметры на новую вкладку. Поэтому я передаю параметры из состояния в контроллер, не показывая в URL. Я использую параметры $state.href примерно так:

В файле js,

var paramValues = { 'path': true, 'logoValue': 123};
var achiveRoute = $state.href('state123', paramValues);
$window.open(achiveRoute, '_blank');

В файле состояния,

.state("state123", {
    url: "/sessiontimeline",
    templateUrl: /partials/session.html,
    params : { 'path': true, 'logoValue': null }
}

Я пытаюсь получить доступ к этим параметрам в контроллере, используя StateParams.

var logoValue = $stateParams.logoValue;

Но logoValue показывает undefined.

Как установить / прочитать параметры пути из маршрута?

1 Ответ

0 голосов
/ 12 марта 2019

Чтобы передать эти параметры в строку запроса, вы должны определить свой маршрут так, чтобы он принимал их в строке запроса. Сейчас происходит то, что у вас нет состояния, определенного с помощью URL, который принимает параметры в строке запроса, поэтому он использует значения по умолчанию, которые вы указали в своем состоянии (true для path и null для logoValue). Вот как вы должны определить свое состояние, чтобы принимать эти параметры в строке запроса:

.state("state123", {
    url: "/sessiontimeline?path?logoValue",
    templateUrl: /partials/session.html,
    params : { 'path': true, 'logoValue': null }
}

С помощью вышеуказанной конфигурации вы можете передавать параметры либо напрямую через вызов $state.go, либо через строку запроса, и ваш $state.href('state123', paramValues) должен выдать /sessiontimeline?path=true&logoValue=123.

...