2016-05-24 2 views
0

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

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

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

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

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

https://jsfiddle.net/pspL9c7s/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

Это все еще возникает вопрос, хотя: почему 'мкр-автовыбор = "ложь"' не делать ничего? Если это считается добавлением новой вкладки, нужно иметь возможность добавить эту директиву и ожидать, что она будет работать, но это явно не так. –

+0

Здесь я не упоминаю 'autoselect': у вас есть указатель, который, согласно директиве, является выбранной вкладкой с' md-selected'. Если вы измените массив, индекс не будет ссылаться на одни и те же элементы массива. – floribon

+0

Правильно, но в этом случае 'autoselect' никогда не участвует. Я имею в виду ... всегда есть выбранный индекс. 'autoselect' должен точно делать то, что @Dallin запрашивал для imo, или документы должны обновляться. (Я не занимаюсь здесь, я немного смущен.) –

Смежные вопросы