【发布时间】:2014-07-16 00:48:57
【问题描述】:
我正在使用 Angular Dart 开发一个大型项目。 Javascript 将使用 dart2js 从 Dart 生成。该项目目前针对的是 Google Chrome,但将来它也应该可以在 Firefox 中运行。
在上周推出 Google Chrome 35m 之前,一切都很好。所有Component 都损坏了样式表。 applyAuthorStyles 似乎在 Google Chrome 35m 中不起作用。
我花了很多时间研究,终于想出了以下解决方案:
声明Component 时使用useShadowDom: false。它让我重构了我项目中所有存在的Components:
- 删除
cssUrl。我必须将每个Component的样式表移动到一个(或多个)样式表文件中并将它们导入index.html - 重新实现每个
ShadowRootAware.onShadowRoot,因为该方法不接受ShadowRoot作为其参数 - 重新测试(当然)
如您所见,如果我应用此解决方案,还有很多额外的工作。
不知道有没有比我更好的解决方案?
编辑
我想我应该解释一下我的代码结构,以帮助大家更好地理解我的问题。
- 我的项目中有很多
Component。每个Component有 3 个文件:1 个 CSS 文件(范围)、1 个 HTML 文件和 1 个 dart 文件 - 我有一些全局 CSS 文件并在入口 HTML 页面 (index.html) 中导入它们
- 在 Chrome 35m 中,
Component中的 HTML 没有来自全局 CSS 的样式,即使我设置了applyAuthorStyles: true(applyAuthorStyles已弃用)
我只需要一个解决方案来使用全局 CSS(例如来自 CSS 框架)设置 Component 的样式,并且代码更改最少。
【问题讨论】:
标签: css google-chrome dart angular-dart shadow-dom