AngularJS normalizacja

Problem

Wyjdźmy od problemu – pewnego rodzaju standardem w HTML jest to, że tagi są zapisywane za pomocą kebab case, czyli na przykład <some-tag-name>. A JavaScript ma problem z obsługą zmiennych/pól o takich nazwach:

var some-tag-name = {};
Uncaught SyntaxError: Unexpected token '-'

Ponieważ JavaScript traktuje myślnik jako znak odejmowania, to nie jest w stanie poradzić sobie z powyższym zapisem.

Rozwiązanie – normalizacja

AngularJS rozwiązuje ten problem poprzez normalizację – przekształca kebab case na camel case (tłumacząc z HTML do JS) i odwrotnie (tłumacząc z JS na HTML). Czyli jeśli chcemy stworzyć dyrektywę w JavaScript to zapisujemy jej nazwę za pomocą camel case:

myApp..directive('someTagName') ...

Następnie możemy ją wykorzystać w HTML:

<html>
...
<some-tag-name/>
...
</html>