вы можете добавить класс в свой li с помощью:
li.className = "test"
и установить стиль для тестирования класса в глобальном файле styles.css вашей папки src, например, в вашем файле styles.css:
.test{
color: red;
}
DEMO
или вы можете добавить префикс ксс с помощью: host / deep /, в вашем компоненте css:
:host /deep/ .test{
color: red;
}
DEMO
или установите инкапсуляцию на ViewEncapsulation.None
и используйте компонент css:
import { ViewEncapsulation } from '@angular/core';
@Component({
...
encapsulation: ViewEncapsulation.None
})
update :
вы можете определить tocPagechild в вашем html и отправьте заголовки tocPage, чтобы перечислить их на странице:
app-component.html:
<article id="page">
<page-toc [elements]="titles"></page-toc>
<h2>Foo</h2>
<p>lorem ipsum...</p>
<h2>Bar</h2>
<p>lorem ipsum...</p>
</article>
app-component.ts:
export class AppComponent {
public titles: string[] = []
constructor(){}
ngOnInit(){
this.createToc();
}
createToc() {
let elemArticle = document.getElementById("page");
var myArrayOfNodes = [].slice.call( elemArticle.querySelectorAll("h2") );
console.log(myArrayOfNodes)
myArrayOfNodes.forEach((value, key) => {
this.titles.push(value.innerHTML)
})
}
}
page-toc.component.ts
export class PageToc {
@Input() elements: string[];
}
page-toc.component.html
<ul id="page-toc">
<li class="title" *ngFor="let element of elements">
{{element}}
</li>
</ul>
page-toc.component.css:
.title{
color: red;
}
DEMO .