如何在 Angular 指令的 Link 函数中设置 CSS 样式

Posted

技术标签:

【中文标题】如何在 Angular 指令的 Link 函数中设置 CSS 样式【英文标题】:How to set CSS styles within Link function of Angular directive 【发布时间】:2015-09-17 11:19:41 【问题描述】:

我试图在单击自定义 Angular 指令时在某个类上设置 CSS 样式。我想在 Link 函数中完成这个(以及任何其他 DOM 操作)。 以下是我目前所拥有的,但我收到了 address.on is not a function 错误。单击blur 类元素时,如何在blur 类上正确设置CSS -webkit-filter: none

function link(scope, element, attributes) 
  var address = element[0].getElementsByClassName('blur');
  address.on('click', function() 
    address.css('-webkit-filter': 'none');
  );

【问题讨论】:

【参考方案1】:

address 是一个 DOM 元素。您需要将其包装在 angular.element 中以将其转换为 jqLit​​e 对象:

function link(scope, element, attributes) 
  var address = angular.element(element[0].getElementsByClassName('blur'));
  address.on('click', function() 
    address.css('-webkit-filter': 'none');
  );

【讨论】:

以上是关于如何在 Angular 指令的 Link 函数中设置 CSS 样式的主要内容,如果未能解决你的问题,请参考以下文章

Angular中访问DOM元素的“链接”函数的等价物是啥

angularjs link compile与controller的区别详解,了解angular生命周期

Angular 指令 - 何时以及如何使用编译、控制器、预链接和后链接 [关闭]

angular 学习总结 2

angualar入门学习-- 自定义指令 指令编译执行过程

Angular JS:当我们已经有了具有作用域的指令控制器时,还需要指令的链接函数吗?