ionic4中怎么修改宿主样式

这里拿 ion-select 做测试
ionViewDidEnter() {
    // tslint:disable-next-line:variable-name
    const select_elements = (this.el.nativeElement.querySelectorAll('ion-select'));
    const styles = `
      .select-text {
        color:red;
      }
    `;
    select_elements.forEach((element) => {
        this.injectStyles(element, '.select-text', styles);
    });
}

/* 修改样式的方法 其实可以封装一个公共的工具类,你们去折腾吧*/
injectStyles(
    shadowRootElement: HTMLElement,
    insertBeforeSelector: string,
    styles: string
) {
    const root = shadowRootElement.shadowRoot;
    const newStyleTag = document.createElement('style');
    newStyleTag.innerHTML = styles;
    root.insertBefore(newStyleTag, root.querySelector(insertBeforeSelector));
}

 记得导入 ElementRef

import {Component, ElementRef, OnInit} from '@angular/core';

参考博客:https://www.cnblogs.com/johnjackson/p/11927777.html

posted @ 2020-01-21 01:38  骑着小毛驴1688  阅读(617)  评论(0编辑  收藏  举报