比方說,我有一個directive
,其中包含「contextMenuId」的傳入attribute
。Angular:獲取編譯元素的範圍
在這個指令我現在執行:
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」的第二個參數?你的意思是'元素'?是的,這是一個基於jQuery的句柄來調用你的指令的DOM元素。我不能用它來調用另一個元素。我可以使用'angular.element(document.querySelector('[id * =''+ iAttrs.contextMenuId +'「]'))',但我認爲我會走出一條腿並使用jQuery一次。我剛纔建議的'角度'方式應該有更好的表現。我決定更新我的答案,以這種「有角度的方式」。 – WebWanderer