If you’re filtering in your ng-repeat, you must apply the same filter for you ng-show. If you don’t, the ng-show will always refer to the full array :
<div ng-show="!(tags| filter:nameText).length">No Tag Found</div>
Working fiddle : http://jsfiddle.net/HB7LU/3149/