AngularJS指令没有触发

时间:2015-10-02 17:59:55

标签: javascript angularjs

这是指令:

C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 14.1.4\bin

当用户将鼠标悬停在表行上时,它应该触发,表行的代码在这里:

app.directive('changeImage', function() {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            alert('here');
            $(element).hover(function() {
                // on mouseenter
                $(element).tooltip('show');
                $("#test").addClass('panel');
            }, function() {
                // on mouseleave
                $(element).tooltip('hide');
                $("#test").removeClass('panel');
            });
        }
    };
});

我的指示通常正常。所以我不确定为什么这不起作用。我已将指令附加到表格行。

1 个答案:

答案 0 :(得分:1)

change-image元素上的属性更改为tr

请参阅https://docs.angularjs.org/guide/directive

  

Angular规范化元素的标记和属性名称,以确定哪些元素与哪些指令匹配。我们通常通过其区分大小写的camelCase规范化名称(例如ngModel)来引用指令。但是,由于HTML不区分大小写,我们通过小写形式引用DOM中的指令,通常使用DOM元素上的划线分隔属性(例如ng-model)。

在此之下,文档声明规范化过程如下:

  • 从元素/属性的前面剥离x-和数据。
  • 将:, - 或_分隔的名称转换为camelCase。

这基本上意味着如果你的js中的指令是changeImage,那么在标记中,以下内容将匹配该指令:

  • 的x变化图像
  • 数据更改图像
  • 变化图像
  • change_image
  • 变化:图像