Ответ 1
Это псевдонимы. Angular позволяет как для указания директивы. data-ng-repeat
позволяет проверять HTML с помощью валидаторов, которые не понимают Angular.
Документация здесь с директивами.
Это из документов:
Angular нормализует тег элемента и имя атрибута для определения какие элементы соответствуют этим директивам. Обычно мы ссылаемся на директивы по их регистрозаменному имени camelCase с учетом регистра (например, ngModel). Однако, поскольку HTML нечувствителен к регистру, мы ссылаемся на директивы в DOM по нижним регистрам, обычно используя атрибуты с разделителями тире на элементах DOM (например, ng-model).
И все это верно:
<span ng-bind="name"></span> <br/>
<span ng:bind="name"></span> <br/>
<span ng_bind="name"></span> <br/>
<span data-ng-bind="name"></span> <br/>
<span x-ng-bind="name"></span> <br/>
AFAIK, вы можете использовать эти соглашения об именах в любой директиве, которую анализирует Angular.