Я пытаюсь использовать директиву элемента (ограничивать: "E") для определения настраиваемого компонента. Вот мой шаблон page.html, который вставляется в index.html через директиву ng-view
:
<eng-popup>This text appears, but is rendered in a span</eng-popup>
Угловой запуск IS; index.html имеет директиву ng-app="templatesApp"
в теге body, а app.js устанавливает модуль следующим образом:
var app = angular.module("templatesApp", ['ngRoute']);
Далее, в app.js у меня есть директива popup, определенная:
app.directive('engPopup', function() {
console.log("This console log does not trigger. I have tried 'eng-popup' as the directive first parameter, but that doesn't work either.");
return {
restrict: 'E',
transclude: false,
template: '<div id="thisDoesNotEvenAppear"></div>'
};
});
Проблема в том, что когда я смотрю на полученный html компонент, он выглядит так:
<span class="ng-scope" jQuery110209261664696867675="7">This text should appear, surely</span>
</eng-popup class="ng-scope" jQuery110209261664696867675="8"><//eng-popup>
Поэтому у меня есть несколько вопросов:
Почему вызов команды eng-popup console.log
НЕ запускается?
Почему содержимое тега eng-popup заканчивается в span
?
И самое загадочное из всего, почему тег eng-popup начинается с тега END и заканчивается тегом с двумя косой чертой?
Наконец, что я испортил, чтобы все это произошло?
РЕДАКТИРОВАТЬ
В соответствии с просьбой, здесь Plunker. Похоже, что в этой упрощенной версии проблем span и end-tag не происходит, но директива eng-popup по-прежнему не запускается:
https://plnkr.co/edit/mVa6Mye5besJAtWihMWF?p=preview
RE-EDIT
На всякий случай это все еще разрешимо, вот последний Plunkr, который я смог собрать. Он не работает, что, по крайней мере, имеет общее с нашим реальным проектом. Не уверен, что это же проблема.
https://plnkr.co/edit/sJoYnYjqx9ZGIH0KhObC
Итак, коллега отметил, что он "работает" в Chrome. Оказывается, это проблема IE8. Кто бы мог подумать... (вся причина, по которой мы используем 1.2.29, состоит в том, что многие из наших пользователей будут получать доступ к ней через IE8, но похоже, что пользовательские директивы находятся за пределами таблицы).
Я немного изменил ваш пример (очень мало), и, похоже, он работает нормально?
https://plnkr.co/edit/3NlHNDOCBVRktk3ZcsnV?p=preview
Что я сделал, удалите требование ui-router
, так как вы не добавили ссылку на скрипт. После этого он работает. Итак, вы включаете ui-router
в свой проект правильно?