View source Improve this doc

ngCloak
directive in module ng

Description

The ngCloak directive is used to prevent the Angular html template from being briefly displayed by the browser in its raw (uncompiled) form while your application is loading. Use this directive to avoid the undesirable flicker effect caused by the html template display.

The directive can be applied to the <body> element, but typically a fine-grained application is preferred in order to benefit from progressive rendering of the browser view.

ngCloak works in cooperation with a css rule that is embedded within angular.js and angular.min.js files. Following is the css rule:

[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
  display: none !important;
}

When this css rule is loaded by the browser, all html elements (including their children) that are tagged with the ng-cloak directive are hidden. When Angular comes across this directive during the compilation of the template it deletes the ngCloak element attribute, which makes the compiled element visible.

For the best result, angular.js script must be loaded in the head section of the html file; alternatively, the css rule (above) must be included in the external stylesheet of the application.

Legacy browsers, like IE7, do not provide attribute selector support (added in CSS 2.1) so they cannot match the [ng\:cloak] selector. To work around this limitation, you must add the css class ngCloak in addition to ngCloak directive as shown in the example below.

Usage

as attribute
<ANY ng-cloak>
   ...
</ANY>
as class
<ANY class="ng-cloak">
   ...
</ANY>

Example

Source





Demo