4ikist: С другой стороны если их не использовать, и двухсторнню связчь обходить, зачем тогда ангуляр?
Я согласен что вочеры нужно минимизировать. Я лично ставлю :: везде где только можно. Но в случае с faragly я думаю что это как раз когда нужно использовать вочер.
faragly: если вы используете контроллер без vm, то вотчер ставится прямо на переменную
$scope.$watch('object', function(newObj, oldObj){
// oldObj.someValue
}, true); // true т.к. наблюдение за объектом
Если у вас используется Controller as, то если в контроллере например this указан как var vm = this, вотчер ставится $scope.$watch('vm.object'…