Ich habe eine ng-Wiederholung, die eine Schaltfläche hat, die eine Funktion hat, die ein ng-show Element innerhalb dieser ng-Wiederholung schaltet.setze alle ng-if auf false beim Klick außer angeklickt item
Die innerhalb der Klasse movie_option
Spannweite hat eine ng-click=toggleInfo($index)
:
Und die div additional_info
hat eine ng-Show, die ein Element ein- oder ausgeblendet.
<ul ng-cloak="showResult">
<li class="search_results" ng-repeat="movie in movies | orderBy: '-release_date' track by $index">
<div class="movie_info">
<div class="movie_options">
<div class="slide">
<span class="movie_option">
<span><i class="fa fa-question-circle" aria-hidden="true" ng-click="toggleInfo($index)"></i></span>
</span>
</div>
</div>
</div>
<div class="additional_info" ng-show="hiddenDiv[$index]">
{{movie.overview}}
</div>
</li>
</ul>
Wenn ein Benutzer auf das Symbol klickt, ruft es diese Funktion:
$scope.toggleInfo = function (index) {
$scope.hiddenDiv[index] = !$scope.hiddenDiv[index];
}
Dies schaltet die ng-Show Zustand von der hiddenDiv ng-Show. Das funktioniert gut.
Was ich tun wollte, ist, dass alle hiddenDiv-Zustände auf falsch gesetzt werden, außer auf den, der angeklickt wurde, so dass nur eine ng-show wahr wäre.
Ich habe das versucht, aber es scheint nicht das erwartete Ergebnis zu erhalten. Wenn ich 10 li-Elemente habe, wie wirkt sich das Klicken auf in einem auf die anderen ohne Funktion aus? Ist der Klick nicht in dieser li (ng-Wiederholung) enthalten? –
'ng-click =" displayedIndex = $ index "' ist ein Ausdruck. Sie müssen keine Funktion aufrufen, sondern können Code direkt ausführen. Wenn Sie möchten, können Sie 'ng-click =" onlyDisplay ($ index) "' schreiben und dann in Ihrem Bereich die Funktion '$ scope.onlyDisplay = function (idx) {$ scope.displayedIndex = idx; } ' – floribon
@PeterBoomsma und tatsächlich nach dem Testen ist es sicherer, nicht direkt $ scope.displayedIndex zu verwenden, sondern es als Eigenschaft $ scope.something.displayedIndex zu haben (ansonsten hängt das Verhalten von Ihrer Version von Angular ab). Überprüfen Sie, dass die Arbeit Geige: http://jsfiddle.net/6dkLqgfL/ – floribon