防止在Angular 2中向SaSS选择器添加属性选择器

3

继续这个问题SVG is not loaded with Angular 2,我将使用 SaSS 代码样式化我的 SVG 图标。 我已经写好了这段代码:

svg {
  width: 200px;
}

当我编译这段代码时出现问题。编译器总是添加一个属性选择器。就像这样:
svg[_ngcontent-noc-7] {
    width: 200px;
}

每次重新加载页面时,noc总是不同的。这是我的代码:
<div *ngFor="let item of achievements; let i = index" class="achievementscontainer">
    <h3>{{item.name}}</h3>
    <p>{{item.description.replace('%d', item.next)}}</p>
    <div [innerHTML]="transform(item.image)" [class]="item.status"></div>
    <p class="bold">Progress till next achievement:</p>
    <p><span>{{item.progress}}</span>/<span>{{item.next}}</span></p>
</div>

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

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

export class ProfileComponent {

    achievements = [
        { 
            image: `<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 300 300" xml:space="preserve"><path class="st0" d="M194.5,101.5c10.3-10.8,16.6-25.4,16.6-41.4C211.1,26.9,184.2,0,151,0C117.9,0,91,26.9,91,60.1 c0,15.8,6.1,30.2,16.1,40.9c-33.7,10.4-58.4,41.8-58.4,78.8v84.8c0,19.4,15.9,35.3,35.3,35.3h129.6c20.7,0,37.7-17,37.7-37.7v-82.5 C251.3,143.4,227.4,112.4,194.5,101.5z"/></svg>`, 
            name: "Follower", 
            description: "Followed %d people", 
            progress: 6,
            next: 35,
            status: "brons"
        }, { 
            image: `<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  viewBox="0 0 300 300" xml:space="preserve"><path class="st0" d="M263.1,218.1l2.6-4.5l13.5,7.8c11.4-20.5,18.1-43.9,18.6-68.9H282v-5.2h15.7c-0.4-25-7-48.5-18.4-69l-13.7,7.9 l-2.6-4.5l13.7-7.9c-12.4-20.7-29.8-38.1-50.5-50.5l-7.9,13.7l-4.5-2.6l7.9-13.7c-20.5-11.4-44-18-69-18.4v15.7h-5.2V2.4 c-25,0.5-48.4,7.1-68.9,18.6l7.8,13.5L82,37.1l-7.8-13.5C53.6,36,36.3,53.4,23.9,74.1l13.4,7.7l-2.6,4.5l-13.4-7.7 C10,99,3.4,122.4,3,147.4h15.3v5.2H3c0.5,24.9,7.1,48.3,18.5,68.7l13.2-7.6l2.6,4.5l-13.2,7.6c12.4,20.6,29.7,37.9,50.3,50.3 l7.6-13.2l4.5,2.6l-7.6,13.2c20.4,11.3,43.8,18,68.7,18.4v-15.3h5.2v15.3c24.9-0.4,48.4-7,68.8-18.3l-7.7-13.3l4.5-2.6l7.7,13.3 c20.7-12.4,38-29.7,50.5-50.3L263.1,218.1z M228.1,55.1l-66.9,92.5c0.4,2.9,0,5.8-1.3,8.5l47.1,71.5c0.9,1.3,0.5,3.1-0.8,4l-8.4,5.6 c-1.3,0.8-3,0.5-3.8-0.8L146,163.7c-3.1-0.3-6.2-1.6-8.6-4c-5.5-5.5-5.5-14.3,0-19.8c3.6-3.6,8.6-4.8,13.2-3.7l65.1-90 c0.9-1.2,2.5-1.5,3.7-0.6l7.9,5.7C228.7,52.1,229,53.9,228.1,55.1z"/></svg>`, 
            name: "Tracker", 
            description: "Tracked %d series", 
            progress: 6,
            next: 20,
            status: "silver"
        }, { 
            image: `<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 850 850" xml:space="preserve"><path class="st0" d="M477.6,400.4c-17.9,0-32.3-14.5-32.3-32.3c0-9.9,4.4-18.7,11.4-24.6c-9.8-3.8-20.4-6-31.6-6 c-48.4,0-87.6,39.2-87.6,87.6c0,48.4,39.2,87.6,87.6,87.6s87.6-39.2,87.6-87.6c0-13.7-3.2-26.6-8.8-38.1 C497.9,395.1,488.3,400.4,477.6,400.4z M425,258c-92.3,0-167.1,74.8-167.1,167.1S332.7,592.2,425,592.2s167.1-74.8,167.1-167.1 S517.3,258,425,258z M425.3,588.6c-90.3,0-163.4-73.2-163.4-163.4s73.2-163.4,163.4-163.4s163.4,73.2,163.4,163.4 S515.6,588.6,425.3,588.6z M0,424.2v1.8c241.2,234.8,621.4,234.8,850,0v-1.8C621.4,189.4,241.2,189.4,0,424.2z M839.5,425.8 c-222.8,228.9-593.3,228.9-828.5,0v-1.7c235.1-228.9,605.7-228.9,828.5,0V425.8z"/></svg>`, 
            name: "Watcher", 
            description: "Watched %d hours", 
            progress: 6,
            next: 50,
            status: "gold"
        }
    ];

    constructor(private sanitizer: DomSanitizer) { }

    transform(html) {
        return this.sanitizer.bypassSecurityTrustHtml(html);
    }
}

如果我的页面上加载了代码,那么svg标签上就不会添加_ngcontent-noc-7属性。
因此,我的问题是如何在页面加载时从我的SaSS代码中防止向svg选择器添加属性?我使用 Angular 2 来构建网站。
1个回答

7

试试这个:

@Component({
    templateUrl: ...,
    styleUrls: ...,
    encapsulation: ViewEncapsulation.None
})

Here's the official doc.


忘记添加了这个:import { Component, ViewEncapsulation } from '@angular/core'; - H. Pauwelyn
有没有办法,我想在选择 CSS 时添加“无”选项? - Anonymous Creator

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接