2017-10-13 10 views
0

해당 구성 요소에만 구성 요소 별 스타일을 사용하려고하지만 다른 모든 구성 요소에 사용되고 있습니다. 웹팩 설정이 있습니다. 다른 접근 방식을 시도했지만 예상대로 작동하지 않습니다. 누구든지이 사실을 알 수있게 도와 줄 수 있습니까? 웹팩 구성 :각형 2 구성 요소 스타일이 전체적으로 적용됩니다.

/* 
    * to string and css loader support for *.css files 
    * Returns file content as string 
    * 
    */ 
    { 
     test: /\.css$/, 
     use: ['to-string-loader', 'css-loader'] 
    }, 
    /* 
    * to string and css loader support for *.css files 
    * Returns file content as string 
    * 
    */ 
    { 
     test: /\.(scss|sass)$/, 
     use: ['to-string-loader', 'style-loader', 'css-loader', 'sass-loader'], 
    }, 

내 구성 요소 선언 :

@Component({ 
    selector: 'app', 
    encapsulation: ViewEncapsulation.None, 
    styleUrls: [ 
    './app.component.global.scss' 
    ], 
    template: `..... 
+0

확인 구성 요소 specifuc 스타일은 전역 스타일에 의해 작성 – JayDeeEss

+0

글쎄, 당신은 캡슐화'와 응용 프로그램을 구성하는 동안없는되어 있는지 확인 : ViewEncapsulation.None'. 즉, 모든 스타일이 캡슐화되지 않았습니다. 이 줄을 지우고'styles : [...]'섹션의'.angular-cli.json'에 글로벌 스타일을 추가하십시오. – Daniomi

+0

덮어 쓰지는 않지만 모든 페이지의 모든 스타일을 다음과 같이 볼 수 있습니다. @Danielomi : .angular-cli.json을 사용하지 않고 webpack. – cissharp

답변

0

이 같은 시도

@Component({ 
    selector: 'outbreak-visualization', 
    templateUrl: './outbreak-visualization.component.html', 
    styleUrls: ['./outbreak-visualization.component.scss'] 
}) 

내 응용 프로그램 구성 요소 선언 :

난 다음 위치에서 전역하는 SCS 파일이 :

SRC => 응용 프로그램 =>

body { 
    background: #000 !important; 
} 

app.component.global.scss

app.component.global.scss 그리고 난 다음 위치에 style.scss 파일이 :

style.scss

@import "src/app/app.component.global.scss"; 

추가 각-cli.json의 스타일 배열 안에 당신의 style.scss

"styles": [ 
    "styles.scss" 
]