As discussed in the comments, the confusion was around the search
property, which is not a special filter in Angular, but just the name of a property that will be used with Angular's filter filter.
Also, $parent
is not needed if a property on a parent scope object is used/referenced. I.e., if $scope.search = { ... }
is defined in the parent scope, child scopes (but not directive isolate scopes) can access this object via normal JavaScript prototypal inheritance.