Javascript 角度:获取元素编译时使用的范围

Javascript 角度:获取元素编译时使用的范围,javascript,angularjs,Javascript,Angularjs,假设我有一个指令,带有传入的属性“contextMenuId” 在本指令中,我现在执行: contextMenu = $('[id*="' + iAttrs.contextMenuId+'"]'); 或者 如果这些都不一样,我希望有人能告诉我区别,但这与我的答案是分开的 现在,让我们看看我们的上下文菜单: <ul id="exampleContextMenu" context-menu-defs="contextMenuDefs" ></ul> 我想从我前面提到的

假设我有一个
指令
,带有传入的
属性
“contextMenuId”

在本指令中,我现在执行:

contextMenu = $('[id*="' + iAttrs.contextMenuId+'"]');
或者

如果这些都不一样,我希望有人能告诉我区别,但这与我的答案是分开的

现在,让我们看看我们的
上下文菜单

<ul id="exampleContextMenu" context-menu-defs="contextMenuDefs" ></ul>
    我想从我前面提到的指令中访问数组
    contextMenuDefs
    ,但这是一个完全不同的
    范围,我无权访问它


    我是否可以在指令中以某种方式访问编译
    contextMenu
    时使用的
    范围
    ?谢谢

    可用于获取范围其他元素:

    angular.element("<selector as jquery>")).scope();
    

    是的,你可以。你能在你有contextMenu的地方添加你的指令代码吗?为什么你要在angular指令中使用
    $
    ?使用传递到
    链接中的第二个参数。参见@tcooc链接
    的第二个参数?你是说
    元素
    ?是的,这是调用指令的DOM元素的基于jQuery的句柄。我不能用它来调用另一个元素。我可以改为使用
    angular.element(document.querySelector('[id*=“'+iAttrs.contextMenuId+'']'))
    ,但我想我会冒险使用jQuery一次。我刚才建议的
    angular
    方式应该有更好的性能。我已经决定更新我的答案,以这种“角度的方式”。@dfsq这两个指令非常复杂和庞大,我只被允许发布关于我们的代码如何工作的这么多信息(更多的信息可能会给我带来麻烦)。我曾想过制作一个JSFIDLE,但是创建这两个的工作示例需要花费大量时间,而这是我没有的。我已经提供了足够的代码,可以在我希望答案执行的范围内接收答案。我假设有一个基于
    角度的
    查找,我可以在我提供的示例中的
    上下文菜单
    句柄上执行,这就是我要寻找的答案。你看,如果你的问题很清楚,我不会问细节,只是马上回答。但是您没有发布最重要的部分:contextMenuDefs
    来自何处以及您的指令如何绑定/处理数据。但是,由于您不能提供更多详细信息,我只能回答“我可以从指令中以某种方式访问contextMenu编译时使用的作用域吗?”-是的,这是完全可能的。不可能!这正是我想要的!让我试试这个。我太激动了!
    angular.element("<selector as jquery>")).scope();
    
    var scopeOuther = angular.element('[id*="' + iAttrs.contextMenuId+'"]')).scope();