gpt4 book ai didi

css - Angular 2 中的动态 styleUrls?

转载 作者:技术小花猫 更新时间:2023-10-29 10:10:30 26 4
gpt4 key购买 nike

是否可以将样式表的 url 动态注入(inject)到组件中?

类似于:

styleUrls: [
'stylesheet1.css',
this.additionalUrls
]

或(一厢情愿并注意这只是假代码):

export class MyComponent implements dynamicUrls {

ngDynamicUrls() {
this.inject(['anotherStylesheet.css', 'anotherStylesheet2.css']);
}
}

因为如果您能够覆盖 stylesheet1 中的某些样式而无需访问它,您应该怎么做?我唯一的想法是以某种方式拥有动态 styleUrls 但我认为从我能找到的情况来看这甚至是不可能的。

有什么想法吗?

最佳答案

它有可能以某种可能对我有用的方式起作用。您可以操作 Angular 2 Component 装饰器,创建您自己的装饰器并使用您的属性返回 Angular 的装饰器。

  import { Component } from '@angular/core';

export interface IComponent {
selector: string;
template?: string;
templateUrl?: string;
styles?: string[];
styleUrls?: string[];
directives?: any;
providers?: any;
encapsulation?: number;
}

export function CustomComponent( properties: IComponent): Function {
let aditionalStyles: string;

try {
aditionalStyles = require(`path to aditional styles/${ properties.selector }/style/${ properties.selector }.${ GAME }.scss`);
properties.styles.push(aditionalStyles);
} catch (err) {
console.warn(err)
}
}

return Component( properties );
}

并在您的组件中用新的替换默认的 angular 2 @Component。

import { CustomComponent } from 'path to CustomComponent';

@CustomComponent({
selector: 'home',
templateUrl: './template/home.template.html',
styleUrls: [ './style/home.style.scss']
})
export class ......

关于css - Angular 2 中的动态 styleUrls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36531486/

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