比方说,我有一个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