【发布时间】:2018-12-09 20:03:43
【问题描述】:
在 Angular 中,如何从页面上的标题元素创建目录?
HTML:
<article id="page">
<ul id="page-toc">
<!-- auto-generated toc-items go here -->
</ul>
<h2>Foo</h2>
<p>lorem ipsum...</p>
<h2>Bar</h2>
<p>lorem ipsum...</p>
</article>
TS:
export class MyComponent implements OnInit {
createToc() {
let elemArticle = document.getElementById("page");
var myArrayOfNodes = [].slice.call( elemArticle.querySelectorAll("h2") );
var toc = document.getElementById("page-toc");
myArrayOfNodes.forEach( function(value, key, listObj) {
var li = toc.appendChild(document.createElement("li"));
li.innerHTML = value.innerHTML;
})
ngOnInit() {
this.createToc();
}
}
这运行没有错误,并且 li 元素确实出现在页面上。但是,my-component.scss 中定义的 css 不会应用于它们。这让我相信 Angular 并不真正了解自动生成的 li 元素。
Angular 的实现方式是什么?
【问题讨论】: