ng JOT obserwatora dla układów „lineDirections” w tym obserwatora są resetowanie wartość ATTR MD wybrany („selectedIndex”), można utrzymać za pomocą zamknięcia w sposób następujący:
$scope.useDummyArray1 = function() {
var selectedIndex = $scope.selectedIndex;
$timeout(function(){
$scope.selectedIndex = selectedIndex;
});
$scope.lineDirections = $scope.dummyArray1;
};
zrobić to samo we wszystkich trzech funkcjach. kod Timeout zadziała po strażnika, który ponownie ustawi poprzednią wartość „selectedIndex”
można również zrobić to w następujący sposób (ale nie powinno się używać w ten sposób, tylko w celu weryfikacji)
$scope.useDummyArray1 = function() {
for(var i=0;i<$scope.lineDirections.length;i++){
$scope.dummyArray1[i].$$hashKey = $scope.lineDirections[i].$$hashKey;
}
$scope.lineDirections = $scope.dummyArray1;
};
dzięki temu wartość $$ hashKey pozostanie niezmieniona, co zapobiegnie obserwatorowi kątowemu. ale nie jest to zalecane z następującego powodu: 1) $$ hashKey jest używane wewnętrznie w kanciastym, nie jest to dobry pomysł, aby grać tymi kluczami. 2) jeśli twoja długość "lineDirections" jest inna, to będzie przypadek, gdy zmieni się trochę klucza hasha $$.
Pytania dotyczące pomocy przy debugowaniu ("dlaczego ten kod nie działa?") Muszą zawierać pożądane zachowanie, konkretny problem lub błąd oraz ** najkrótszy kod niezbędny do odtworzenia go w pytaniu. ** – georgeawg
Witaj, gerogeawg , Wierzę, że mam wszystkie komponenty w moim oryginalnym pytaniu, o którym wspomniałeś w swoim komentarzu: pożądane zachowanie: Jak mogę zachować wybraną zakładkę nawet po zmianie $ scope.lineDirections? Kroki niezbędne do odtworzenia błędu: Po kliknięciu przycisku UseDummy2 btn, który nic nie zmienia, zmieniając zmienną, na której powtarzane są tabele md, tracę wartość $ scope.selectedIndex. Wartość $ scope.selectedIndex zostanie zresetowana do 0 i wybrana zostanie pierwsza karta. –
@ManishPradhan Twój kod wydaje się działać. Nie jestem w stanie odtworzyć błędu – Vivz