I know this is somehow a late answer, but I just lost about half an hour debugging this reason, it can save someone.
BE MINDFUL, if you use angular.equals() for objects with the obj.$something angular.equals() property (property name starts with $) , these properties will be ignored in comparison.
Example:
var obj1 = { $key0: "A", key1: "value1", key2: "value2", key3: {a: "aa", b: "bb"} } var obj2 = { $key0: "B" key2: "value2", key1: "value1", key3: {a: "aa", b: "bb"} } angular.equals(obj1, obj2)
DanteTheSmith Dec 12 '17 at 12:15 2017-12-12 12:15
source share