1. Home
  2. Languages
  3. AngularJS
  4. Mastering AngularJS: How to Use ng-show and ng-hide for Conditional Rendering

Mastering AngularJS: How to Use ng-show and ng-hide for Conditional Rendering


If you’re working with AngularJS, one of the common tasks you’ll encounter is controlling when certain parts of your webpage are visible. This is where ng-show and ng-hide come in handy. These two directive attributes allow you to dynamically display or hide HTML elements based on some condition. In this guide, we’ll walk through how to implement ng-show and ng-hide in your AngularJS projects, so you can create more interactive web applications seamlessly.


What Are ng-show and ng-hide?

  • ng-show: Displays an element if the given expression evaluates to true. When the expression is false, the element is hidden.
  • ng-hide: Hides an element if the given expression evaluates to true. When the expression is false, the element is displayed.

Both directives work by adding or removing the CSS class ng-hide from your element. The ng-hide class sets the display property to none, effectively hiding the element.


Why Use ng-show and ng-hide?

  • It keeps your HTML clean and understandable.
  • It allows you to toggle elements without having to manually manipulate the DOM.
  • It works well with AngularJS’s two-way binding system, making UI updates smooth.
  • Helps improve user experience by dynamically showing relevant content.


Step-by-Step Guide to Using ng-show and ng-hide

Step 1: Setup Your AngularJS Application

First, ensure you have AngularJS added to your project. You can include it via CDN:

Then, create a basic AngularJS module and controller:

Step 2: Use ng-show

To display an element only when a condition is true, use ng-show:

This message is visible when isVisible is true.

In this example, pressing the button toggles $scope.isVisible between true and false, which in turn shows or hides the paragraph.

Step 3: Use ng-hide

Alternatively, if you want to hide an element when a condition is true, use ng-hide:

This message is hidden when isVisible is true.

This will do the opposite of ng-show — display the paragraph only when $scope.isVisible is false.

Step 4: Styling and Performance Notes

  • Both directives toggle the ng-hide class, which sets display: none by default.
  • The elements are still present in the DOM. This behavior is different from directives like ng-if, which add or remove elements from the DOM altogether.
  • Avoid overusing ng-show and ng-hide for heavy DOM elements where complete removal might be more efficient.


Real-World Use Cases

  • Form validation messages: Show or hide error messages based on form input validity.
  • Loading spinners: Display a spinner only when data is loading.
  • Conditional navigation menus: Show different menu items depending on user roles or login state.


Wrapping Up

Mastering ng-show and ng-hide can seriously improve your AngularJS app’s interactivity without complicating your codebase. These simple directives help you control visibility in a clean, declarative way, embracing AngularJS’s core strengths.

Next time you need to toggle content appearance based on user actions or data states, ng-show and ng-hide should be your go-to tools.

Happy coding!

Updated on July 4, 2025
Was this article helpful?

Related Articles

Leave a Comment