Bläddra i källkod

loosen Model prop equality for objects

Adam Shaw 8 år sedan
förälder
incheckning
f99d6c5a54
1 ändrade filer med 7 tillägg och 1 borttagningar
  1. 7 1
      src/common/Model.js

+ 7 - 1
src/common/Model.js

@@ -42,7 +42,13 @@ var Model = Class.extend(EmitterMixin, ListenerMixin, {
 			val = null;
 		}
 
-		if (val !== this._props[name]) { // if not set, will be undefined, and will be truthy
+		// a change in value?
+		// if an object, don't check equality, because might have been mutated internally.
+		// TODO: eventually enforce immutability.
+		if (
+			typeof val === 'object' ||
+			val !== this._props[name]
+		) {
 			this._props[name] = val;
 			this.trigger('change:' + name, val);
 		}