gpt4 book ai didi

Angular 动态设置组件 styleUrls

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

我在新项目中使用的是最新版本的angualar 5.0。我是这个框架的新手,希望 Angular 开发人员能提供一些帮助。

我想在运行时使用类级别变量动态设置 styleUrls 属性。在我的例子中,styleURL 路径将通过 Angular 服务来自数据库。

import { Component } from '@angular/core';
import { Title } from '@angular/platform-browser';

@Component({
templateUrl: './search.component.html',
styleUrls: ['./search.component.css']
})


export class SearchComponent {
pageName = 'New Search Page';
PropfavMovie = 'Gladiator';

constructor(private _titleSrv: Title) {
this._titleSrv.setTitle('Search page');

}

有没有一种方法可以在 ngOnInit 事件中或从 SearchComponent 类的构造函数中设置组件的 styleUrls 属性

就我而言,每个客户都有自己的样式表。所以我需要从数据库中提取样式表路径并动态填充@components 属性。

最佳答案

我不是专家,但我认为考虑到 Angular 的工作方式,您要求做的事情是不可能的。

我相信 styleUrls 指向的 CSS,或者 styles 中提供的文字 CSS,与模板编译器(在现代 Angular 中称为 Ivy)一起被传递组件 HTML。这将创建一个“组件工厂”,用于在运行时创建组件实例。工厂可以在构建时(提前/AOT)或在客户端动态编译,但即使在后一种情况下,我认为它是在最初加载拥有的模块时编译的——如果可以编译一个新工厂苍蝇,我还没有看到任何方法。

我的建议是为每个(类型的)客户端制作一个单独的模块,然后查找要用于该客户端的模块并使用路由器延迟加载它。或者,也许您可​​以将各种样式表的公共(public)部分分解到一个静态表中,并使用 ngClass 条件使样式的其余部分动态化。

关于Angular 动态设置组件 styleUrls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49994630/

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