Secondo la documentazione angolari https://docs.angularjs.org/api/ng/directive/ngRepeat#animationsperché non l'ng-congedo/ng-ENTER classi vengono aggiunti
" .enter - quando un nuovo articolo viene aggiunto alla lista o quando un elemento è rivelato dopo un filtro
.leave - quando un elemento è ancora rimosso dall'elenco o quando un elemento è filtrato"
, quando .push ({}) o .splice (-1 1) da un array, ne nessuna di queste classi viene aggiunta alla ng-repeat. qual è il problema?
<div ng-controller="MyCtrl">
<button ng-click="addLine()">
add
</button>
<button ng-click="removeLine()">
remove
</button>
<div ng-repeat="line in lines">
<div class="preview">{{$index}}</div>
</div>
</div>
var myApp = angular.module('myApp', ['ngAnimate']);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.addLine = function(){
$scope.lines.push({})
}
$scope.removeLine = function(){
$scope.lines.splice(-1, 1)
}
$scope.lines = [{
text: 'res1'},
{
text: 'res2'}];
}
come Ted ha osservato nella sua risposta, avendo gli stili CSS effettivo per .NG-enter/.NG-congedo è richiesto, altrimenti il modulo ngAnimate non aggiungerà le classi .NG immettere agli elementi DOM
Per essere più chiari, non mi interessa fare un'animazione in questo momento. Il problema per me è che il .NG immettere classi in realtà non vengono applicate per l'attributo class di un elemento a meno che non si dispone di stili CSS per .NG immettere
LAVORO PLUNKER http://plnkr.co/edit/TqpdIy6syikBhAeb5Kw3?p=preview
Risposta aggiornata. Il modulo ha bisogno di transizioni CSS per funzionare. –
è inclusa la sorgente angular.animate.js. la mia domanda non riguarda effettivamente le animazioni CSS. per favore rileggi la domanda Voglio solo vedere aggiunte le classi .ng-enter/.ng-leave. – trickpatty
Credo che Angular si affidi al CSS per definire la durata di avere quelle classi lì, quindi nessuna transizione CSS significa che l'animazione 0sec potrebbe semplicemente saltare le classi. Credo che non funzionerà affatto senza definire la transizione tramite CSS o JS –