As I understand it Angular will automatically setup standard $watch's for any $scope defined value within a controller that correlates with a model in the view.
But let's say I want of these values to check for equality instead. So within the controller I'd add a $watch(..., ..., true).
Doesn't that mean that there are now two $watch's running for the same value, each with a different watch depth? And if so, should I remove the standard $watch that Angular setup initially in order to remove the redundant $watch and thereby increase performance?
No, I think we are just overriding default watch of the angular when we write watch for scope variable , even if we write equality true or false I think this will override default watch of angular