如何在AngularJS中获取指令元素的样式

时间:2014-01-05 02:59:06

标签: angularjs angularjs-directive

我正在尝试创建一个使用其元素维度的指令。我注意到如果样式在元素上内联完成,那么相关的样式属性在链接函数中可用。但是,如果样式在外部css文件中完成(这是我想要做的),则在编译之前不会应用样式。有什么方法可以解决这个问题吗?

Plunkr example

1 个答案:

答案 0 :(得分:0)

Angular的jqLit​​e css函数不等同于jQuery实现。不幸的是,文档没有强调这种差异,不像他们强调其他功能的限制。无论是在外部样式表中还是在内联样式中定义,jQuery都会执行您期望的操作并获取宽度。 Angular的jqLit​​e只会从内联样式中获取它。关于这个问题有一个未解决的问题:jqLite .css() retrieves only inline styles

一些可能的解决方法:

  • 请改用offsetWidth属性:

    elem.prop('offsetWidth')
    
  • 如果您决定包含jQuery,那么它将优先,css将按预期工作