I had the same problem.
Just skip the $ rootScope prototype. Then the selected areas will also have this method.
This is my attempt to use the debug lodash function as a native scope method:
angular.module('Test', []) .config(function($provide) { $provide.decorator('$rootScope', function ($delegate) { $delegate.__proto__.$$busy = 0; $delegate.__proto__.$watchDebounce = function (watchExpression, listener, objectEquality){ var _scope = this; var debouncedListener = _.debounce(function (newValue, oldValue, scope){ listener(newValue, oldValue, scope); _scope.$$busy = 0; scope.$digest(); }, 1000); var wrappedListener = function (newValue, oldValue, scope){ _scope.$$busy = 1; debouncedListener(newValue, oldValue, scope); } return this.$watch(watchExpression, wrappedListener, objectEquality); } return $delegate; }) })
A working example is here http://jsfiddle.net/3ncct/
Dimac source share