Ответ 1
Я сам об этом задумался. Рассмотрим два независимых проекта: "Widget Factory" и "Wombat Framework", каждый из которых разрабатывает директиву x
. предпочтительная практика для префикса имен директив, чтобы избежать конфликтов пространства имен, но в этом случае каждый может по-прежнему определять wf-x
.
Что произойдет, если я использую <div wf-x="something"></div>
в приложении, содержащем оба модуля? Интересно, что angular будет прикреплять оба, связывая каждый в порядке убывания приоритета. Но шансы на получение правильного результата низки. angular вызовет ошибку, если обе директивы попытаются добавить контроллер, а семантика двух директив и то, что они ожидают от значения атрибута и структуры элемента, могут легко конфликтовать друг с другом.
В XML эта проблема решается с помощью пространств имен. <div xmlns:wf1="..." wf1:x="something"></div>
или <wf1:x xmlns:wf1="..."></wf1:x>
не очень хороши, но они четко описывают, какую директиву мы намерены использовать.
Почему это не поддерживает angular? Пространства имен XML являются необычными и могут не поддерживаться в общем HTML, и могут возникнуть технические проблемы с синтаксическим разбором. Директивы поддерживаются в комментариях и CSS-классах, а также в элементах и атрибутах, а :
нужно каким-то образом исказить в имени класса. Самый простой ответ, хотя может заключаться в том, что это еще не достаточно распространенная проблема, требующая чего-то более продвинутого, чем префиксы, которые мы видим сегодня. Следует отметить, что текущий подход angular является рекомендованным веб-компонентами. По мере развития этого стандарта я ожидал бы angular отслеживать его. Там несколько discussion на эту тему в группе Polymer также.