Я хочу создать один компонент и использовать его несколько раз в другом компоненте, поскольку шаблоны и логики c этого компонента всегда одинаковы, а стиль отличается, я решил создать один компонент вместо создания нескольких компоненты и просто динамически определяют файл стиля.
Существует общий метод, называемый Lazy Load CSS во время выполнения, на который я добавлю ссылку, но проблема заключается в том, что метод css добавляется глобально. и поскольку все css файлы имеют классы с одинаковыми именами, последний файл в DOM Added влияет на все компоненты (т. е. капсуляция не используется в этом методе), поэтому этот метод неэффективен.
https://egghead.io/lessons/angular-lazy-load-css-at-runtime-with-the-angular-cli
Наконец, я поставил картинку ниже, которая четко показывает, что я хочу сделать точно.
player.component.ts:
@Component({
selector: 'app-player',
templateUrl: './player.component.html',
styleUrls: ['./player-' + number + '.css']
})
export class PlayerComponent implements OnInit {
@Input() number: number;
constructor() {}
ngOnInit(): void {}
}
player.component. html:
<p class="title">player works!</p>
player-1. css:
.title {
color: red;
}
player-2. css:
.title {
color: orange;
}
game.component. html:
<div>
<app-player [number]="1"></app-player>
<app-player [number]="2"></app-player>
<app-player [number]="3"></app-player>
</div>
Как это можно быть сделано? Любое решение приветствуется.
Спасибо.