gpt4 book ai didi

带有延迟加载的 Angular 4 多个全局样式

转载 作者:太空狗 更新时间:2023-10-29 18:19:44 25 4
gpt4 key购买 nike

到目前为止,我正在使用 angular-cli version 1.3.2 构建一个 angular 4 应用程序,一切顺利。我在文档中读到我们可以在 https://github.com/angular/angular-cli/wiki/stories-global-styles 处使用带有延迟加载的全局样式。 .

现在当我运行命令时

ng build --prod -vc -nc --build-optimizer

它为 Bootstrap 生成以下输出

chunk {bootstrapBundle} bootstrapBundle.cf320d25069acd157990.bundle.css (bootstrapBundle) 96.9 kB {inline} [initial]

根据我的理解,这个 css 应该应用于该网站,但是,当我看到该网站时,它没有应用任何 Bootstrap css。

现在,如何在站点中使用 bootstrapBundle 或 bootstrap block ?

这是我的angular-cli.json 样式配置

"styles": [
"styles.scss"
{
"input": "./assets/smartadmin/bootstrap.scss",
"lazy": true,
"output":"bootstrapBundle"
},
],

请帮忙。

谢谢。

最佳答案

在@Kuncevic 的帮助下,我找到了解决问题的方法

Lazy load application theme styles with Angular CLI

现在到此为止,将生成 css 文件,如果我们通过以下方式将它们添加到 index.html

<link href='yourstyle.bundle.css' rel='stylesheet'/>

然后它将在第一次请求时被急切加载。

但问题是,我真的很想延迟加载它们并将它们应用到我的网站上


解决方案。

  1. 提取文章中提到的CSS
  2. 添加了对 app.component.html 的样式引用,因为这将是一个根组件,因此我将其添加到其中。

app.component.html

<div *ngIf="stylesLoaded">
<link rel="stylesheet" href="/bootstrap.cf320d25069acd157990.bundle.css">
</div>
  1. isLoaded 属性添加到 app.component.ts
  2. app.component.ts 中实现了 AfterViewChecked。详情Check Life cycle Hooks

app.component.ts

export class AppComponent implements AfterViewChecked {
stylesLoaded: boolean = false;

constructor() {}

ngAfterViewChecked() {
this.stylesLoaded = true;
}
}

现在,一旦您的 View 被呈现,AfterViewChecked 将被触发并使 stylesLoadedtrue 这将启用 中的样式链接>app.component.html 并开始加载它们。

Hence lazy loaded :)

以类似的方式,您可以加载 JS 模块。

希望对某人有所帮助。快乐编码

关于带有延迟加载的 Angular 4 多个全局样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com