我有一个名为" resizable"为元素添加功能以使其可调整大小。
我想有条件地将此指令应用于来自控制器的元素。
当我在运行时使用attr
添加此指令时," resizable"的属性指令已添加,但指令不会执行。
以下是http://jsfiddle.net/HB7LU/3995/
的插图我期待的是,在调用$('span').attr('resizable', '');
时,应将funky
类添加到span
。为什么不呢?
答案 0 :(得分:0)
您需要使用$compile
指令通知角度更改。基本上逻辑是这样的:"我已经改变了你应该关注的元素内的东西。请根据我的范围编译DOM":
function Controller($scope, $compile) {
// Apply resizable directive to span
var span = $('span');
span.attr('resizable', '');
$compile(span)($scope);
}
文档here
注意:你不应该在控制器中本地使用jQuery(......或者任何地方)。它可能会在您感兴趣的元素之外选择span
个标记。您应该尝试编写一个指令来包装应用resizable指令的逻辑。