Имена атрибутов элементов HTML с дефисами автоматически преобразуются в верблюжий регистр.

Я создаю пользовательскую директиву AngularJS для создания карты Google, и я сохранил некоторые параметры карты Google в пользовательских атрибутах в своем теге:

<googlemap zoom-control="true" …></googlemap>

Метод компиляции директив Angular имеет параметры (tElement, tAttrs, transclude); когда я вывожу tAttrs в консоль, у объекта есть свойства с именами, которые преобразовали дефисы в camelCase:

скриншот расширенного объекта $tAttrs из Chrome Dev Tools (имена свойств преобразованы в допустимый формат)

Кто это делает — Angular или браузер (проверено в Firefox и Chrome)? Могу ли я положиться на такое поведение?

P.S. Когда я проверяю DOM, в атрибутах элемента html все еще есть дефисы.


person Jakob Jingleheimer    schedule 12.01.2013    source источник


Ответы (1)


Угловой делает это. Да, вы можете положиться на это:

На странице Атрибуты:

Общий объект между функциями компиляции/связывания директив, который содержит нормализованные атрибуты элемента DOM. Значения отражают текущее состояние привязки {{ }}. Нормализация необходима, так как все они рассматриваются как эквивалентные в Angular:
<span ng:bind="a" ng-bind="a" data-ng-bind="a" x-ng-bind="a">

person Mark Rajcok    schedule 12.01.2013
comment
Спасибо! Я пытался искать в документах дефис и тире, но так и не нашел эту страницу. Я знал ng:bind против ng-bind против data-ng-bind, но я не знал, что Angular преобразует имена атрибутов в имена, удобные для json. Кстати, я использую этот сервис, и он работает нормально (но я хотел бы посмотреть, смогу ли я сделать это с помощью Angular). - person Jakob Jingleheimer; 12.01.2013
comment
@jacob Вчера я снова посмотрел на ваш сервис ... возможно, вам лучше оставить все как есть. Я не уверен, как вы могли бы добавить директиву в HTML, которая затем могла бы инкапсулировать материал addListner, выполняющий манипуляции с DOM, поскольку весь HTML добавляется API Google. (Для других читателей мы обсуждаем эту службу< /а>). - person Mark Rajcok; 12.01.2013
comment
хорошо спасибо. Я добавлю его в конец невыполненной работы, чтобы взглянуть на него после того, как все остальное будет сделано. Спасибо! - person Jakob Jingleheimer; 14.01.2013