Se desidero solo 20 iterazioni, come posso ripetere il blocco? E 'il lavoro isnt:underscore _.range() non funziona su AngularJS ng-repeat
<div ng-repeat="item in _.range(20)"></div>
UnderscoreJS incluso nella pagina
Se desidero solo 20 iterazioni, come posso ripetere il blocco? E 'il lavoro isnt:underscore _.range() non funziona su AngularJS ng-repeat
<div ng-repeat="item in _.range(20)"></div>
UnderscoreJS incluso nella pagina
Se si desidera utilizzare le funzioni di undersore nel modello si dovrà esporre su un campo di applicazione. Se si desidera avere a disposizione in tutti i modelli un modo di farlo sarebbe:
var app = angular.module('angularjs-starter', []);
app.run(function($rootScope){
$rootScope._ = _;
});
allora si potrebbe utilizzare in un modello come hai provato:
<div ng-repeat="item in _.range(20)">{{item}}</div>
Qui è un lavoro Plunk: http://plnkr.co/edit/1Va4EikvRyFiQvhb2HYV?p=preview
Mentre le opere di cui sopra non dovrebbe essere usato. Il modello dovrebbe essere inizializzato in un controller. In caso contrario, AngularJS eseguirà _range
su ciascun ciclo digest per generare un nuovo array.
Come accennato da Pawel, questa soluzione è a disagio. il problema con questa soluzione è che ng-repeat non sarà in grado di ottimizzare affatto. Ogni volta che controlli angolari "_.range (20)" restituirà un nuovo array - e quindi ng-repeat, dato che ha un nuovo oggetto array, creerà venti ** nuovi ** elementi ogni volta. Se ng-repeat trova invece la stessa matrice, potrebbe salvare gli elementi. Dovresti fare ciò che ha detto Pawel e fare '$ scope.range20 = _.range20' o qualcosa - e rigenerarlo solo quando hai bisogno di un nuovo intervallo. –