Предположим, у меня есть directive
с входящим attribute
из "contextMenuId."Угловой: получение области, в которой элемент был скомпилирован с
В этой директиве я теперь выполнять:
contextMenu = $('[id*="' + iAttrs.contextMenuId+'"]');
или ...
contextMenu = angular.element(document.querySelector('[id*="' + iAttrs.contextMenuId+'"]'))
Если они не делают то же самое, я бы рад, если кто-то может сказать мне о разница, но это отдельно от моего ответа.
Теперь давайте посмотрим на наш contextMenu
:
<ul id="exampleContextMenu" context-menu-defs="contextMenuDefs" ></ul>
Я хотел бы получить доступ к массиву contextMenuDefs
из директивы я уже упоминал ранее, но это с совершенно иной scope
, что у меня нет доступ к.
Можно ли каким-либо образом получить доступ к scope
, что contextMenu
был скомпилирован с моей директивой? Благодаря!
Да, вы можете. Можете ли вы добавить код своей директивы, где у вас есть contextMenu? – dfsq
Почему вы используете '' 'из угловой директивы? Используйте второй аргумент, переданный в 'link'. См. Https://docs.angularjs.org/guide/directive – tcooc
@tcooc Второй аргумент 'link'? Вы имеете в виду 'element'? Да, это дескриптор на основе jQuery для элемента DOM, который вызвал вашу директиву. Я не могу использовать это для вызова другого элемента. Вместо этого я мог бы использовать 'angleular.element (document.querySelector ('[id * ="' + iAttrs.contextMenuId + '"]')), но я думал, что выйду на конечность и буду использовать jQuery один раз. «Угловой» способ, который я только что предложил, должен иметь лучшую производительность. Я решил обновить свой ответ на этот «угловой путь». – WebWanderer