Unable to watch the changes of the property '$' of an object which is used by filterFilter.
//object to search
$scope.search = {'$': 'something...'}
//watch the object
$scope.$watch('search',
function (newValue, oldValue) {
//do action
results = filter(list, search);
...
}, true);
The "$" in the function filterFilter represents any property, however it represents built-in variable in the function equals(watch).
How to resolve the conflict between them?