Вкладки Md с помощью ng-hide - сохранить активную ранее выбранную вкладку

0

Я работаю с набором вкладок, в которых есть вкладки, которые нужно скрывать и показывать динамически.

Проблема в том, что когда вкладка переходит из скрытого в видимое, она становится выбранной вкладкой. Я хочу, чтобы выбранная ранее вкладка все еще была выбрана после отображения вкладок.

Вот простой пример. В этом случае, если выбрано "Три", и я нажимаю кнопку, чтобы отобразить вкладку "Два", я хочу, чтобы "Три" все еще были выбраны.

https://jsfiddle.net/b5aw533a/2/

Вот пример того, как я пытался использовать md-active для достижения этого

https://jsfiddle.net/pspL9c7s/1/

Теги:
angular-material
tabs

1 ответ

0
Лучший ответ

Ваша проблема в том, что $scope.selectedTab равен 2, что является индексом выбранной вкладки.

Когда вы добавляете новую вкладку, вы должны соответственно обновить $scope.selectedTab.

В принципе, если вы добавите вкладку перед выбранным, вы должны увеличить индекс выбранной вкладки с помощью $scope.selectedTab++. Если новая вкладка появится после этого, вам не обязательно это делать.

$scope.showTab = function() {
  // we add a tab before, so we update the index of the selected one
  $scope.selectedTab++;
  $scope.shouldShow = true;
}

https://jsfiddle.net/v8jL75tf/

  • 0
    Это все еще поднимает вопрос: почему md-autoselect="false" ничего не делает? Если это считается добавлением новой вкладки, можно добавить эту директиву и ожидать, что она будет работать, но, очевидно, это не так.
  • 0
    Я не думаю, что здесь используется autoselect : у вас есть индекс, который в директиве предполагается выбранной вкладкой с md-selected . Если вы измените массив, индекс не будет ссылаться на одни и те же элементы массива.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню