微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css – 动态style在角度2?

可以将样式表的url动态注入到组件中吗?

就像是:

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

或(一厢情愿的想法,并注意到这只是假的代码):

export class MyComponent implements dynamicUrls {

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

因为如果你能够从样式表1中覆盖某些样式而无需访问它,那么你应该怎么做呢?我唯一的想法是以某种方式拥有动态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 );
    }

在您的组件中,用新的组件替换认角度2 @Component.

import { CustomComponent } from 'path to CustomComponent';

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

原文地址:https://www.jb51.cc/css/214578.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。