0
我试图创建一个简单的指令来避免悬停的庞大元素。这是我有:使用编译函数向元素添加指令
app.directive('ngHover', function(){
return {
compile: function($element,attr) {
$element.attr('ng-mouseenter',attr.ngHover + ' = true')
.attr('ng-mouseleave',attr.ngHover + ' = false')
.removeAttr('ng-hover');
}
}
})
产生的因素是什么,我会写(和会工作),但它似乎并没有前角用途$compile
以复加。我可以手动使用$compile
,但我想了解为什么这不起作用。
当您将指令动态添加到同一元素时(就像您在此处所做的那样),就太迟了 - 您的元素正在被编译,并且其上的属性已被缓存。添加它们没有意义 - 它们不会被编译。根据你正在尝试做的事情,我会创建一个自定义指令,*不使用其他指令。这就像你正在编写ngHover并在链接函数中操作DOM。看看ngMouseenter如何在角度源中实现,并对其进行建模。 – pixelbits