Grazie a @JoshDavidMiller per una risposta molto succinta. Ho avuto bisogno di fare questo in una ng-repeat e non riuscivo a capire un modo elegante per farlo. L'uso di un booleano sull'oscilloscopio mostrava i controlli di modifica per tutti gli elementi nell'elenco anziché solo quello su cui stavo passando il mouse. Mi sono quasi chinato a sferrare angular.element
(ad esempio JQuery) e ad associare me stesso i gestori di hover in modo che potessero mostrare manualmente solo i controlli per l'elemento stazionario. Sono contento di non essermi abbassato in questi modi malvagi.
<div ng-repeat="item in items" ng-mouseenter="item.showEdit = true" ng-mouseleave="item.showEdit = false">
<span class="glyphicon glyphicon-edit" ng-show="item.showEdit"></span>
Mouse over me.
</div>
Basta collegare lo struttura al item
piuttosto che $scope
. In alcune situazioni non ho potuto aggiungere chiavi casuali agli elementi nella mia lista, quindi ho mappato la mia matrice a una nuova in cui la item
è effettivamente una proprietà su un oggetto wrapper, quindi potrei allegare qualsiasi proprietà che volevo all'oggetto wrapper senza inquinare le chiavi item
.
Non esiste una direttiva per il passaggio del mouse (ad esempio ng-hover), ma è possibile scriverne una! Questa è la bellezza di AngularJS. =) – Swordfish0321