34

AngularJS is dependent upon JavaScript being enabled. This means that if someone visits an application or website built in AngularJS it will not render properly.

What are common conventions used to handle visitors with JavaScript disabled when using AngularJS?

Please explain why this is the case?

Included in the problem is the case of handling angular JS directives and {{data_bindings}}. So that the data does not show when the page cannot render the page.

2
  • 2
    The "best" way largely depends on the purpose and audience of the site. Commented Mar 7, 2014 at 17:14
  • I've updated the question to be more appropriate for the answer I'm looking for. Commented Mar 7, 2014 at 17:17

2 Answers 2

36

After considering other answers on this question and "How to detect if JavaScript is disabled?" as well as some further research on AngularJS.

First off you will want to hide all variables displayed through the databindings.

This can be done using ng-cloak which is appended to an HTML tag.

<div ng-cloak>
    <!-- page content here -->
    {{bound_data}}
</div>

It also includes a CSS tag to hide that element.

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

You will then want alternate content to be displayed for when a user has JavaScript blocked or disabled. This is done using the tag.

<noscript>
    You must have JavaScript enabled to use this app.
</noscript>

You have the choice to create an app with reduced features and functionality or require the visitor to have JavaScript enabled in order to use your app at all.

Sign up to request clarification or add additional context in comments.

Comments

13
<NOSCRIPT>
You need Javascript enabled to use this site.
</NOSCRIPT>

http://www.w3.org/TR/html401/interact/scripts.html#h-18.3.1

7 Comments

It's also possible to put a <meta> redirect tag inside a <noscript> block, which allows you to do some work on the server to prepare appropriate messaging if need be.
What about all the angular tags showing up after rendering. There's more information to the solution that I feel your not getting to.
@IntegrityFirst Um. It's AngularJS. It needs JS. There's no way to get around that.
I'm confident that there is.
@IntegrityFirst, your landing page can redirect to your Angular page if javascript is enabled, else display the message.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.