Для каждого маршрута в моем приложении мне нужно изменить исходное фоновое изображение. Я использую свойство style для каждого вложенного компонента для достижения этого, устанавливая ViewEncapsulation в None в каждом компоненте, чтобы он имел глобальный эффект. Это работает, но проблема в том, как я перемещаться через приложение, я получаю несколько экземпляров этого стиля в голову тег:Как вы можете изменить исходное фоновое изображение из вложенного компонента в Angular 2?
<style>...</style>
<style>...</style>
Вот код для компонента ребенка:
import {Component, Output, EventEmitter} from '@angular/core';
import {ViewEncapsulation} from '@angular/core';
@Component({
selector: '',
templateUrl:'app/home.component.html',
styles: [`
.hero-unit {
background:url('/app/assets/images/hero-01.png');
width:100%;
height:540px;
background-size: cover;
background-repeat: no-repeat;
background-position: 50% 50%;
}
`],
encapsulation: ViewEncapsulation.None
})
export class HomeComponent {
}
Один переопределяет другое, что нормально, пока вы не попытаетесь вернуться к предыдущей странице, где эффект перестает работать. Мой вопрос в том, есть ли способ удалить свойство стиля, как только я уйду от этого компонента и повторно вставил его, когда вернусь обратно. Альтернативно, есть лучший способ поменять фоновое изображение на основе маршрута. Мне сложно найти лучший метод для достижения такой простой задачи в Angular 2. Спасибо.
Пожалуйста, продемонстрируйте код, который вы используете, чтобы попытаться достичь этого. – Soviut
Пожалуйста, покажите, что вы пробовали, ваши подходы и ваши результаты. Вы найдете людей, желающих помочь, если вы четко сформулируете свой вопрос – pixelbits
Спасибо за предложения. Я сделал редактирование сообщения с соответствующим кодом. – maximus