aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPete Bacon Darwin2013-04-16 12:29:56 +0100
committerPete Bacon Darwin2013-04-16 13:15:49 +0100
commit0ac969a5ee1687cfd4517821943f34fe948bb3fc (patch)
tree15fe985df387c9145b39b1659976d93a60d2c27f /src
parent465238613b5b849bf833bdc71d3b42f15dc0e19b (diff)
downloadangular.js-0ac969a5ee1687cfd4517821943f34fe948bb3fc.tar.bz2
fix(ngClass): should remove classes when object is the same but property has changed
If you wire up ngClass directly to an object on the scope, e.g. ng-class="myClasses", where scope.myClasses = { 'classA': true, 'classB': false }, there was a bug that changing scope.myClasses.classA = false, was not being picked up and classA was not being removed from the element's CSS classes. This fix uses angular.equals for the comparison and ensures that oldVal is a copy of (rather than a reference to) the newVal.
Diffstat (limited to 'src')
-rw-r--r--src/ng/directive/ngClass.js4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ng/directive/ngClass.js b/src/ng/directive/ngClass.js
index d731118f..09efe0c8 100644
--- a/src/ng/directive/ngClass.js
+++ b/src/ng/directive/ngClass.js
@@ -29,12 +29,12 @@ function classDirective(name, selector) {
function ngClassWatchAction(newVal) {
if (selector === true || scope.$index % 2 === selector) {
- if (oldVal && (newVal !== oldVal)) {
+ if (oldVal && !equals(newVal,oldVal)) {
removeClass(oldVal);
}
addClass(newVal);
}
- oldVal = newVal;
+ oldVal = copy(newVal);
}