У меня проблема при попытке отобразить другой HTML с помощью директив в AngularJS.AngularJS - ngInclude не отображает выражения в событиях
если шаблон HTML без событий, он работает просто отлично:
<button id="{{item.id}}">Some Button !</button>
будет оказана:
<button id="123">Some Button !</button>
но если шаблон HTML имеет некоторые события, угловое выражение не будет работать:
<button id="{{item.id}}" onmouseover="doSomething({{item.id}})">Some Button !</button>
будет оказана:
<button id="123" onmouseover="doSomething({{item.id}}">Some Button !</button>
Я пытался импортировать другой HTML и изменить содержимое динамически с помощью обеих директив & ngInclude, но оба они реагируют так же, когда они пытаются включить шаблон HTML.
Эта проблема возникает только в событиях (onfocus, onmouseover, onclick), и любая другая часть html успешно отображается.
Я хочу импортировать HTML и хочу, чтобы выражения были полностью заменены данными. одной из причин этого является то, что у нас есть много настраиваемых библиотек тегов JSP, которые мы хотим конвертировать в директивы AngularJS. в этих тегах есть много событий, например, наш собственный тег «Автозаполнение» имеет более 10 событий, и их можно легко преобразовать в директиву только в том случае, если угловые отображали бы наши выражения внутри этих событий (но это НЕ!)
Благодаря
Вы действительно должны использовать угловые эквиваленты, такие как 'нг-mouseover'. Также, каково намерение с этим селектором jQuery в атрибуте? Это действительно не угловой способ сделать это, и вам будет очень тяжело с этим ... –
Вы правы ... Я должен использовать угловые эквиваленты ... но у меня уже есть такие функции, как «doSomething() «написано в другом JS-файле, и они не в моих масштабах ... что мне делать? переписать все их для работы в угловом? Разве я не могу заставить их работать так же, как в примерах выше? Кстати, я удалил селектор jQuery ... спасибо, что упомянул об этом ... – Cypher
Попробуйте 'doSomething (item.id)' вместо этого, но если функция не входит в область действия, она не будет работать ... Если функции являются глобальными, вы можете попробовать '$ window.doSomething (item.id)'. И я не думаю, что есть что-то, что мешает вам использовать 'ng-mouseover'. –