如何用AngularJS中的指令包装现有DOM元素
例如,我有一个已经编译过的现有DOM元素,它包含角度指令如何用AngularJS中的指令包装现有DOM元素,angularjs,angular-directive,Angularjs,Angular Directive,例如,我有一个已经编译过的现有DOM元素,它包含角度指令 CurrentDirective function link(scope, element, attr, ctrls) { var element = element.children()[1]; //Ex HTML: <div testElement>test</div> ) // Wrap element now with WrapperDirective 结果应该类似
CurrentDirective
function link(scope, element, attr, ctrls) {
var element = element.children()[1]; //Ex HTML: <div testElement>test</div> )
// Wrap element now with WrapperDirective
结果应该类似于使用此代码,但必须使用已编译的内部片段动态创建它
<WrapperDirective>
<div testElement>test</div> // Just example, could be anything.
</WrapperDirective>
测试//举个例子,可以是任何东西。
基本上我需要
$compile("<WrapperDirective>" + Existing DOM Element(No Recompile)+ "</WrapperDirective")
$compile(“+现有DOM元素(无重新编译)+”这感觉像是一个问题。您正在询问您试图为某个未知问题提出的解决方案。在不知道指令的用途的情况下,不太清楚您试图在这里实现什么;“动态包装元素”“在angular中通常不是必需的任务……问题是众所周知的。元素包装器是ngDraggable的。元素是mdMenu(angular material)。我正在尝试修改angular material的菜单,以使弹出的菜单可拖动。angular material通过创建根元素,然后附加传入的DOM元素来构建菜单项。我需要根元素可拖动。ngDraggable需要子元素找到ng Dragable句柄属性。这就是您应该问的问题关于这里;这就是问题的背景,并提供了一些人们可以测试和尝试解决的方法。如果有人告诉我以这种方式包装元素是不可能的,那么我会接受这个答案,我只是想知道是否可以这样做。我可以以这样的方式修改指令,使它们能够工作,但它们会失败et更复杂。作为一种解决方法,我使用.append()使其工作在$compile之后,调用scope.$broadcast来提醒指令子指令已被附加。这感觉像是一个错误。您正在询问您试图为某个未知问题提出的解决方案。在不知道指令的目的的情况下,这里并不清楚您试图实现什么;“动态包装元素”在angular中通常不是必需的任务……问题是众所周知的。元素包装是ngDraggable的。元素是mdMenu(angular material)。我正在尝试修改angular material的菜单,以使弹出的菜单可拖动。angular material通过创建根元素,然后附加传入的DOM元素来构建菜单项。我需要根元素可拖动。ngDraggable需要子元素找到ng Dragable句柄属性。这就是您应该问的问题关于这里;这就是问题的背景,并提供了一些人们可以测试和尝试解决的方法。如果有人告诉我以这种方式包装元素是不可能的,那么我会接受这个答案,我只是想知道是否可以这样做。我可以以这样的方式修改指令,使它们能够工作,但它们会失败et更复杂。作为一种解决方法,我在$compile之后使用.append()并调用scope.$broadcast来提醒指令子指令已被追加。
$compile("<WrapperDirective>" + Existing DOM Element(No Recompile)+ "</WrapperDirective")
$compile("<WrapperDirective></WrapperDirective>")