I had a use case whereby I have to keep an HTML element hidden by default using CSS as follows:
HTML:
<div class="item">
</div>
CSS:
.item {
display: none;
}
But, I need to toggle the element's visibility using ng-show after the page has loaded as follows:
<div class="item" ng-show="show_element">
</div>
But, even if $scope.show_element
is set to true, the element doesn't become visible, that is, the css property is overriding AngularJS' ng-show. Is there any way to give ng-show more priority?
Also, you may think I can keep $scope.show_element
as false initially to hide it. But in that case, I get a very short glimpse of the element when the page is loading which is not good from the UX point of view.
One way to make it work in your case would be using ng-class
where in case when element should be visible you can apply class with correct display property i.e. display: block
and if you suffer from slow bootstrap you can use ng-cloak
check documentation here https://docs.angularjs.org/api/ng/directive/ngCloak