【发布时间】:2019-01-02 08:14:32
【问题描述】:
我正在使用 Ionic 和 Angular 来开发应用程序。我引入了动态主题,将两个.scss 文件添加到我的theme 文件夹中。我有app.scss,我只定义了我的组件的布局,没有颜色。所有颜色都在theme-*.scss 文件中。为了应用主题,我在<ion-nav> 元素上使用了一个类到我的app.html 中。像这样的:
<div [class]="selectedTheme">
<ion-nav [root]="rootPage" ></ion-nav>
</div>
selectedTheme 是一个假定我的主题名称的字符串,因此当我使用 (click) 或 (ionChange) 等事件更改它时,我可以更改我的应用程序的颜色。
文件theme-*.scss 具有以下结构:
.dark-theme {
ion-header {
//colors
}
ion-content {
//colors
}
}
这种方法很有效,但我有一个小问题要避免。我在app-components.ts 文件的constructor 中设置了默认主题,位于隐藏启动画面的著名platform.ready().then(...) 之前。我的问题是,当闪屏隐藏时,我可以看到我的应用程序的布局,但没有应用正确的主题。我在短时间内看到所有白色背景和所有黑色,然后应用默认主题。我在variables.scss 中导入我的自定义主题,我也尝试在app.scss 中导入它们,但行为保持不变。似乎在导入主题之前,它会在app.scss 中应用布局,并且只有在它应用导入的主题及其所有颜色之后。有人已经看到过类似的东西吗?
【问题讨论】:
-
我对您的确切问题感到困惑。 1。正确的组件,错误的主题 2. 没有组件,只有白色背景和黑色。 你的状态是什么?
-
启动时,闪屏会隐藏。有一会儿我可以看到我的应用程序没有主题:所有背景都是白色的,所有文本颜色都是黑色的。然后,几毫秒后应用主题。为什么它没有在 app.scss 中存在的其他 css 代码的同一时刻应用?
标签: html css angular ionic-framework theming