28

Sometimes I see data-ng-controller but more often ng-controller

The ng-controller I already have used and this seems clear. But data-ng-controller.. what is for?

What are the differences between them, and where to use what?

0

4 Answers 4

31

There is no difference except for validation and browser compatibility.

Angular js will not work in IE8 unless data is present

[Update]

  • The above is for versions 1.0.* and 1.2.*
  • 1.3.* does not support ie8 so you don't need data-
Sign up to request clarification or add additional context in comments.

1 Comment

SharePoint strips ng parameters off, so data-ng-* is still needed.
13

Angularjs uses a normalization process for directive name / attributes matching.

From the angularjs docu at http://docs.angularjs.org/guide/directive.

Section Matching Directives:

The normalization process is as follows:

Strip x- and data- from the front of the element/attributes. Convert the :, -, or _-delimited name to camelCase.

1 Comment

Just a bit further down in the docs: Best Practice: Prefer using the dash-delimited format (e.g. ng-bind for ngBind). If you want to use an HTML validating tool, you can instead use the data-prefixed version (e.g. data-ng-bind for ngBind).
11

There's no difference between the two, except that prefixing with data- will allow the HTML to pass validation.

Comments

1

You may also see x-ng-controller. Both data- and x- are html5 custom attribute naming compliant.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.