This works as expected. It seems objectEquality got added way back in 2012<https://github.com/angular/angular.js/commit/d6e3e1baabc3acc930e4fda387b62cbd03e64577#diff-1e47cbafadbdba153d94f2abee2a8451L194>without the proper doc description update.
The wording in yellow should be corrected, maybe by adding an extra bullet point that only addresses objectEquality, with its performance/memory implications. Would you like to send a PR to fix the doc? On Wednesday, May 14, 2014 12:02:20 PM UTC-7, Paul Jolly wrote: > > With reference to: > > https://docs.angularjs.org/api/ng/type/$rootScope.Scope > > > Specifically the section on $watch: > > $watch(watchExpression, [listener], [objectEquality]); > > Registers a listener callback to be executed whenever the watchExpression > changes. > > - The watchExpression is called on every call to > $digest()<https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest> > and > should return the value that will be watched. (Since > $digest()<https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest>reruns > > when it detects changes the watchExpression can execute multiple times > per > $digest()<https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest> > and > should be idempotent.) > - The listener is called only when the value from the current > watchExpression and the previous call to watchExpressionare not equal > (with the exception of the initial run, see below). The inequality is > determined according to > angular.equals<https://docs.angularjs.org/api/ng/function/angular.equals> > function....*etc* > > > The sentence highlighted in yellow is the line in question. > > According to: > > https://github.com/angular/angular.js/blob/master/src/ng/rootScope.js#L330 > > > and > > https://github.com/angular/angular.js/blob/master/src/ng/rootScope.js#L680 > > > angular.equals is only used when objectEquality is set to true. > > The problem is that if you are watching an object, without setting > objectEquality (the third parameter) to be true, looking to rely on the > sentence in yellow, you are going to be disappointed: > > http://plnkr.co/edit/hK27HO?p=preview > > > Have I missed something here, or should the wording in yellow be > corrected? > > Both documentation and test performed against tip/head. > > Thanks > > > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
