0
我有一個簡單的指令,像這樣:Angularjs - 追加與NG-顯示ATTR元素指令
.directive("test", function($compile) {
var directive = {};
directive.restrict = 'AE';
directive.scope = {
options: '=testattr'
};
directive.link = function(scope, element, attr) {
element.wrap('<div class="whatever"></div>');
var el = angular.element('<div class="test" ng-show="showBar"></div>');
$compile(el)(scope);
element.parent().append(el);
scope.isOverPanel = false;
scope.showBar = false;
element.on('mouseover', function(){
console.log('mouseover');
scope.isOverPanel = true;
scope.showBar = true;
});
element.on('mouseleave', function(){
console.log('mouseleave');
scope.isOverPanel = false;
scope.showBar = false;
});
};
return directive;
});
出於某種原因,在div只顯示了,當我點擊元素上,而不是在鼠標懸停。它也不會在mouseleave上消失。我可以在控制檯看到mouseover和mouseleave事件觸發。可能是什麼問題呢?
哦!我想如果我使用jqLite(不包括jQuery),它應該可以工作。我會嘗試ngMouseover指令,看看它是否有效。謝謝! – Andrew 2014-10-29 00:37:58
無法讓它與之一起工作。 'element.wrap('
');'然後'scope.mouseOver = function(){...}'似乎不起作用。我在這裏錯過了什麼? – Andrew 2014-10-29 00:42:00你需要綁定中的()。這裏是一個例子http://stackoverflow.com/questions/22532656/ng-mouseover-and-leave-to-toggle-item-using-mouse-in-angularjs – TGH 2014-10-29 00:43:27