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