Html 将CSS应用于AngularJS指令元素标记

Html 将CSS应用于AngularJS指令元素标记,html,css,angularjs,directive,Html,Css,Angularjs,Directive,我可以将CSS样式应用于已定义为元素标记的AngularJS指令吗 我有以下简单的指令: app.directive('popupHelp', function ($window) { return { restrict: 'A', link: function (scope, elem, attrs, ctrl) { elem.bind('click', function (e) { $window.open('http://www.google

我可以将CSS样式应用于已定义为元素标记的AngularJS指令吗

我有以下简单的指令:

app.directive('popupHelp', function ($window) {
  return {
    restrict: 'A',
    link: function (scope, elem, attrs, ctrl) {
      elem.bind('click', function (e) {
        $window.open('http://www.google.com', 'popupHelpWindow', 'width=500,height=500');
        console.log("I'm going to get you help on: " + attrs.popupHelp);
      });

      // cleanup
      scope.$on('$destroy', function () {
        elem.unbind('click');
      });
    }
  }
});
我称之为:

<a popup-help="csshelp">GET ME HELP!</a>
。。。但我更愿意收紧定义,只适用于我真正正在改变的东西

我还可以将指令重新定义为完整元素,但出于代码样式的原因,我也希望避免这样做


我可以创建一个捕获指令属性的CSS定义吗?

只需向元素添加一个类,并以这种方式设置它的样式即可。指令是否用作属性或元素并不重要

<a class="foo" popup-help="csshelp">GET ME HELP!</a>

如果不想在HTML标记中定义类,也可以使用

elem.addClass('foo')
在指令本身中定义类


如果你真的不想去上课,你可以:

elem.css('cursor','pointer');


为了便于访问,我添加了一个空的
href
属性。AngularJS很好地容忍了这一点。采用了
addClass
路线,使HTML更干净。我很想知道为什么有人认为这个解决方案不合适(例如,否决票)。我建议只使用jQuery作为最后手段。在这种情况下并不需要它。(否决票是我的)@HankScorpio这不是jQuery。这是内置的jqLite@我很高兴能帮上忙:这不是重点。jqLite只是jQuery的一个“lite”版本。本质上是一样的。除了不需要之外,这还模糊了表示(视图)和代码之间的界限。在可能的情况下,它们应明显分开。有时候,如果不使用jQuery/jqLite,事情就无法完成,这不是其中之一。
elem.addClass('foo')
elem.css('cursor','pointer');
elem.attr('style','cursor: pointer');