Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用AngularJS中的指令包装现有DOM元素_Angularjs_Angular Directive - Fatal编程技术网

如何用AngularJS中的指令包装现有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 结果应该类似

例如,我有一个已经编译过的现有DOM元素,它包含角度指令

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>")