Я разрабатываю большой проект с использованием Angular Dart. Javascript будет сгенерирован из Dart с использованием dart2js. В настоящее время проект предназначен для Google Chrome, но в будущем он должен работать и в Firefox.
Все было хорошо, пока на прошлой неделе не вышел Google Chrome 35m. Все Component
имеют неработающую таблицу стилей. Похоже, что applyAuthorStyles
не работает в Google Chrome 35m.
Я потратил много времени на исследования и, наконец, нашел следующее решение:
Используйте useShadowDom: false
при объявлении Component
. Это заставляет меня реорганизовать все существующие Component
в моем проекте:
- Удалить
cssUrl
. Мне нужно переместить таблицу стилей каждогоComponent
в один (или несколько) файл таблицы стилей и импортировать их вindex.html
- Повторно реализовать каждый
ShadowRootAware.onShadowRoot
, поскольку метод не принимаетShadowRoot
в качестве аргумента. - Перепроверить (конечно)
Как видите, если я применю это решение, потребуется много дополнительной работы.
Интересно, есть ли решения лучше моего?
ИЗМЕНИТЬ
Думаю, мне следует объяснить структуру моего кода, чтобы помочь всем лучше понять мою проблему.
- В моем проекте много
Component
. КаждыйComponent
имеет 3 файла: 1 файл CSS (с ограниченной областью действия), 1 файл HTML и 1 файл дротика. - У меня есть несколько глобальных файлов CSS, и я импортирую их на HTML-страницу входа (index.html)
- В Chrome 35m HTML в
Component
не имеет стиля из глобального CSS, даже если я установилapplyAuthorStyles: true
(applyAuthorStyles
устарел)
Мне просто нужно решение для стилизации Component
с помощью глобального CSS (например, из CSS Framework) с минимальными изменениями кода.