我正在尝试构建一个具有某些特定特征的上下文菜单指令(与此问题不直接相关)。我试图将它作为一个“附件”指令来实现,该指令将它所设置的元素的范围附加到预先制作的“菜单”元素上。由于我无法找到关于此主题的任何规范文档,因此我的实现基于Chrome开发人员工具的一些挖掘。
我已经制作了一个简化的测试用例,在这里显示我的实现(和问题):http://plnkr.co/edit/URafJe0OcRsMsmaEdmDi?p=preview
它有效地使用元素范围上的$new
来创建新的继承子范围,然后通过设置其$scope
尝试将该范围附加到'menu'元素(由ID引用)数据属性,并设置ng-scope
类。
我遇到的问题是菜单元素仍然似乎无法访问附加的范围。任何与该范围相关的表达都是空的(再次参见上面的Plunker)。 $scope
数据属性已正确设置为新创建的继承子范围,并且该范围正确继承,以便可以访问父范围值 。我还通过添加一个简单的“1 + 1”表达式来验证它是在解释所有所有的绑定 - 这样可以正常工作。
为什么我不能访问应该附加到元素的作用域,和/或将作用域手动附加到指令中元素的正确方法是什么?
答案 0 :(得分:1)
这是你的掠夺者的一个分叉:http://plnkr.co/edit/V0dbM4NFcxdT8YEXWs4l?p=preview
我不知道如何在不使用$ compile的情况下做你想做的事。我在plunker中做了类似的事情:
menu_element = $compile(menu_element)(child_scope);