I have a directive that I use like this:

<dir model="data"></dir>

The directive has an isolated scope.

scope :{
  model:'='
}

Now I'm trying to use ng-show on that directive using another attribute of my page's $scope, like this:

<dir ng-show="show" model="data"></dir>

But it's not working because the directive is trying to find the show attribute on its own scope.

I don't want the directive to know about the fact that its container might choose to hide it.

The workaround I found is to wrap the directive in a <div> and apply ng-show on that element, but I don't like the extra element this forces me to use:

<div ng-show="show" >
  <dir model="data"></dir>    
</div>

Is there a better way of doing this?

See this plunker: http://plnkr.co/edit/Q3MkWfl5mHssUeh3zXiR?p=preview

Edit
Report