Я работаю с набором вкладок, в которых есть вкладки, которые нужно скрывать и показывать динамически.
Проблема в том, что когда вкладка переходит из скрытого в видимое, она становится выбранной вкладкой. Я хочу, чтобы выбранная ранее вкладка все еще была выбрана после отображения вкладок.
Вот простой пример. В этом случае, если выбрано "Три", и я нажимаю кнопку, чтобы отобразить вкладку "Два", я хочу, чтобы "Три" все еще были выбраны.
https://jsfiddle.net/b5aw533a/2/
Вот пример того, как я пытался использовать md-active
для достижения этого
Ваша проблема в том, что $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;
}
md-autoselect="false"
ничего не делает? Если это считается добавлением новой вкладки, можно добавить эту директиву и ожидать, что она будет работать, но, очевидно, это не так.autoselect
: у вас есть индекс, который в директиве предполагается выбранной вкладкой сmd-selected
. Если вы измените массив, индекс не будет ссылаться на одни и те же элементы массива.