Установить индексы вкладок для ng-повторных вкладок и других элементов div

У меня есть требование в моем проекте. У меня вкладки загружаются в переменную области из HTTP-вызова в зависимости от вошедшего в систему пользователя:

Предположим, для данных User1:

$scope.tabObject = [{  
     "tabid": "1",
     "tabname": "tab1" }, {  
     "tabid": "2",
     "tabname": "tab2" }];

Предположим, для данных User2:

$scope.tabObject = [{  
     "tabid": "1",
     "tabname": "tab1" }, {  
     "tabid": "2",
     "tabname": "tab2" },{  
     "tabid": "3",
     "tabname": "tab3" }, {  
     "tabid": "4",
     "tabname": "tab4" }];  

В дополнение к этим N количество вкладок (с использованием угловых ng-repeat) есть и другие div'ы. Пользователи увидят страницу следующим образом:

Экран User2:
tab1 tab2 tab3 tab4 выход из системы (кнопка)
панель1 панель1
панель2 панель2
* предположим, что здесь tab2 выбран по умолчанию

Пользователь2 находится на вкладке 2 после загрузки страницы, поэтому, когда пользователь нажимает клавишу Tab на клавиатуре, нам необходимо перейти к следующей вкладке 3, вкладке 4, затем выйти из системы, а затем к панелям в зависимости от выбранной вкладки. И если я нажму Shift+ Tab, то нужно сосредоточиться назад.

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

1 ответ

Изменение фокуса для html-элемента не означает, что он будет активирован или кликнут так, как вы ожидаете.

Вы можете принудительно выполнить действие в своем собственном коде JavaScript, если вы связываетесь с onfocus событие. В угловых вы можете использовать ng-focus директива для выполнения необходимых действий. В этом случае при нажатии tab и фокусировке tab1 будет вызвано выражение tab2 (вы определите вызов функции). Например, если вы определили состояния в вашем приложении, вы можете сделать как <a ng-focus="$state.go('tab2')"> Tab2 </a>

Другие вопросы по тегам