Plunker with the problem I'm having. "Jeśli skomentujesz style w ThirdComponent, zobaczysz, że ma to wpływ na style komponentów rodzica i rodzeństwa." - adriancarriger (Dziękuję Adrian)Angular 2 css style leaking out of component
W moim składnika używam ...
styles: ['
@import "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css";
@import "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.43/css/bootstrap-datetimepicker.min.css";
']
ale wydaje się, aby zniszczyć stylu dowolnego składnika, który nazywamy ten. Potrzebuję tylko stylu w tym jednym komponencie. Myślałem, że Angular 2 komponenty są całkowicie niezależne, nie mogę zrozumieć, dlaczego ten zmienia moją całą aplikację internetową.
komponent:
import { Component, OnInit } from '@angular/core';
import datetimepicker from 'eonasdan-bootstrap-datetimepicker';
import moment from 'moment';
@Component({
selector: 'date-time-picker',
styleUrls: ['../../../css/datetimepicker.css'],
template:`
<div class="input-group">
<input class="form-control"
a2e-datetimepicker
[date]="date"
[options]="a2eOptions"
(onChange)="dateChange($event)"
(onClick)="dateClick()"
/>
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
`
})
export class DateTimePicker implements OnInit {
date: moment.Moment;
a2eOptions: any;
dateChange(date) {
this.date = date;
}
dateClick() {
console.log('click click!')
}
getTime() {
alert('Selected time is:' + this.date);
};
addTime(val, selector) {
this.date = moment(this.date.add(val, selector));
};
clearTime() {
this.date = null;
};
constructor(){
this.date = moment();
this.a2eOptions = {
format: 'dddd, MMMM Do YYYY, h:mm a',
//sideBySide: true,
stepping: 5
};
}
ngOnInit(): void {
console.log(datetimepicker);
}
}
datetimepicker.css
@import "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css";
@import "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.43/css/bootstrap-datetimepicker.min.css";
same wyniki, jeśli robię to w ten sposób:
template:`
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.43/css/bootstrap-datetimepicker.min.css">
Korzystanie systemJS
Czy możesz również opublikować swój komponent? – Milad
Enkapsulacja komponentu powinna być emulowana lub natywna. – Milad
W tej chwili jest komponent. – Jus10