Javascript 动态地将指令添加到Angular中的元素

Javascript 动态地将指令添加到Angular中的元素,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个名为“resizeable”的指令,它向元素添加功能以使其可调整大小 我希望有条件地将此指令应用于控制器中的元素 当我在运行时使用attr添加此指令时,会添加“resizeable”指令的属性,但该指令不会执行 下面是一个例子: 我所期望的是当$('span').attr('resizeable','')时时,类funky应添加到span中。为什么不呢?您需要使用$compile指令通知angular更改。基本上,逻辑是这样的:“我在元素中更改了一些您应该关心的内容。请根据我的范围编译D

我有一个名为“resizeable”的指令,它向元素添加功能以使其可调整大小

我希望有条件地将此指令应用于控制器中的元素

当我在运行时使用
attr
添加此指令时,会添加“resizeable”指令的属性,但该指令不会执行

下面是一个例子:


我所期望的是当
$('span').attr('resizeable','')时时,类
funky
应添加到
span
中。为什么不呢?

您需要使用
$compile
指令通知angular更改。基本上,逻辑是这样的:“我在元素中更改了一些您应该关心的内容。请根据我的范围编译DOM”:

文件

注意:您不应该在控制器内以本机方式使用jQuery(…或任何地方)。它可以选择您感兴趣的元素之外的
span
标记。您应该尝试编写一个指令来包装应用可调整大小指令的逻辑

function Controller($scope, $compile) {
    // Apply resizable directive to span
    var span = $('span');
    span.attr('resizable', '');

    $compile(span)($scope);
}