Pozdrav svima.
Radim jednu aplikaciju u kojoj koristim AngularJS pa sam zapeo na jednom koraku.
Naime, potrebna mi je funkcionalnost selektiranja checkboxeva kao što imaju neke popularne web aplikacije poput Gmail-a, gdje se klikne na prvi odabrani checkbox te na posljednji, te on u tom range-u selektira sve između.
To mi nije problem napraviti sa jQuery-em, međutim filozofija AngularJS-a da se ne radi vanjska DOM manipulacija, te zbog toga to nebi funkcioniralo. Ako napravim sa jQuery-em tu funkcionalnost onda se scope neće updateati i sukladno tome, aplikacija neće raditi kako je zamišljeno.
Kada se selektira jedan po jedan checkbox onda sve funkcionira jer koristim ng-click() direktivu.
Moja ideja je bila da za svaki klik na checkbox proračunam koji je prvi checkbox selektiran i koji je zadnji pa da sve između selektiram unutar scope-a, međutim problem je što ne znam kako ukomponirati ngkeypress(), odnosno proslijediti kontroleru da je u trenutku selektiranja checkboxa bila pritisnuta neka tipka.
Znači ovako je HTML od checkboxa:
<input type="checkbox" ng-model="alert.checked" ng-click="checkboxClicked()" class="ma-no-delivery">
I u kontroleru sam zamislio nešto ovako otprilike:
$scope.checkboxClicked = function() {
var first = null;
var last = null;
$.each($scope.alerts, function() {
if(first == null) {
if(this.checked) first = this.$$hashKey;
} else {
// Ovdje bih trebao provjeriti da li je bila pritisnuta shift tipka
if(this.checked) last = this.$$hashKey;
}
});
};
Kako bih mogao proslijediti kontroleru da je u trenutku klika na checkbox bila pritisnuta shift tipka?
Hvala unaprijed.