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