2014-01-05 2 views
2

Я пытаюсь создать директиву, которая использует размеры ее элемента. Я заметил, что если стилирование выполняется внутри элемента, соответствующие атрибуты стиля становятся доступными в функции ссылок. Однако, если стилирование выполняется во внешнем файле css (это то, что я хотел бы сделать), стиль не применяется перед компиляцией. Есть ли способ обойти это?Как получить стиль элемента директивы в AngularJS

Plunkr example

ответ

0

ANGULAR в функции jqLite css не эквивалентна реализации Jquery. К сожалению, документация не подчеркивает эту разницу, в отличие от их акцента на ограничениях в других функциях. jQuery будет делать то, что вы ожидаете, и получить ширину, независимо от того, определена ли она во внешней таблице стилей или в встроенном стиле. Угловой jqLite будет захватывать его только из встроенного стиля. Существует открытый вопрос об этом: jqLite .css() retrieves only inline styles.

Некоторые возможные обходные:

  • Используйте offsetWidth свойство вместо:

    elem.prop('offsetWidth') 
    
  • Если вы решите включить JQuery, то он будет иметь приоритет и css будет работать, как ожидалось

Смежные вопросы