8000 ngClass[Odd/Even] overhaul by gkalpak · Pull Request #15228 · angular/angular.js · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

ngClass[Odd/Even] overhaul #15228

Closed
wants to merge 15 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor(ngClass): simplify conditions
  • Loading branch information
gkalpak committed Oct 7, 2016
commit 2871a1123310be033130afc17223fb25dea9d2e9
18 changes: 10 additions & 8 deletions src/ng/directive/ngClass.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ function classDirective(name, selector) {
restrict: 'AC',
link: function(scope, element, attr) {
var classCounts = element.data('$classCounts');
var oldModulo = true;
var oldVal;

if (!classCounts) {
Expand All @@ -24,18 +25,20 @@ function classDirective(name, selector) {
}

if (name !== 'ngClass') {
scope.$watch('$index', function($index, old$index) {
/* eslint-disable no-bitwise */
var mod = $index & 1;
if (mod !== (old$index & 1)) {
scope.$watch('$index', function($index) {
// eslint-disable-next-line no-bitwise
var newModulo = $index & 1;

if (newModulo !== oldModulo) {
var classes = arrayClasses(oldVal);
if (mod === selector) {
if (newModulo === selector) {
addClasses(classes);
} else {
removeClasses(classes);
}

oldModulo = newModulo;
}
/* eslint-enable */
});
}

Expand Down Expand Up @@ -77,8 +80,7 @@ function classDirective(name, selector) {
}

function ngClassWatchAction(newVal) {
// eslint-disable-next-line no-bitwise
if (selector === true || (scope.$index & 1) === selector) {
if (oldModulo === selector) {
var newClasses = arrayClasses(newVal || []);
if (!oldVal) {
addClasses(newClasses);
Expand Down
0