AngularJS UI-Router получает текущее состояние из вида

Чтобы включить:

adb shell service call bluetooth_manager 6

Для отключения:

adb shell service call bluetooth_manager 9

Протестировано и работает на Samsung Galaxy S7.

25
задан Pier 26 December 2018 в 11:03
поделиться

6 ответов

Не удалось найти это нигде, поэтому я посмотрел в исходном коде.

Существует поле данных с именем $ uiView, присоединенное к элементу ui-view, оно содержит имя представления и связанное с ним состояние. Вы можете получить это состояние следующим образом:

elem.closest('[ui-view]').data('$uiView').state

или даже

elem.inheritedData('$uiView').state
10
ответ дан cipak 26 December 2018 в 11:03
поделиться

Вы можете сделать это следующим образом,

$state.current.name //Return the name of current state
30
ответ дан Gaurav Gandhi 26 December 2018 в 11:03
поделиться

Это полезно, если вы ищете Текущее имя состояния, $ state.current.name

3
ответ дан Abhijeet 26 December 2018 в 11:03
поделиться

Не уверен, что это та же версия, но на 0.3.1 вы можете использовать это, чтобы получить текущее состояние:

$state.$current.name

И выполнить проверку:

$state.is('contact.details.item');

Документация: https://ui-router.github.io/ng1/docs/0.3.1/index.html#/api/ui.router.state . $ State

1
ответ дан Marcos 26 December 2018 в 11:03
поделиться

Если вы хотите проверить текущее состояние

console.log("state", $state.current)

Если вы хотите проверить имя текущего состояния

console.log("statename", $state.current.name)

0
ответ дан shael 26 December 2018 в 11:03
поделиться

Работающий « из коробки» Контроллер из вашего кода, который показывает состояние:

.controller('State1Ctrl', function ($state) {
    console.log("Current State: ", $state.current.name);
});
0
ответ дан Oleg 26 December 2018 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: