【发布时间】:2018-01-11 02:20:45
【问题描述】:
我在我的 Angular4 项目中得到了这个小代码:
<div class="divider"></div>
<ng-content select=".nav-toggle"></ng-content>
现在我想让分隔符只可见,如果有任何内容来自 ng-content 标记的外部。这可能吗?我绝对找不到任何有关此的信息。
【问题讨论】:
标签: angular typescript
我在我的 Angular4 项目中得到了这个小代码:
<div class="divider"></div>
<ng-content select=".nav-toggle"></ng-content>
现在我想让分隔符只可见,如果有任何内容来自 ng-content 标记的外部。这可能吗?我绝对找不到任何有关此的信息。
【问题讨论】:
标签: angular typescript
没有查询任意投影内容的好方法
@Component({
selector: 'item',
template: `
<div *ngIf="divider" class="divider"></div>
<div #wrapper><ng-content select=".nav-toggle"></ng-content></div>'})
class Item implements AfterContentInit {
@ViewChild('wrapper') wrapper:ElementRef;
divider:boolean = false;
ngAfterContentInit() {
console.log(this.wrapper.nativeElement.innerHTML); // or `wrapper.text`
this.divider = !!this.wrapper.nativeElement.children;
}
}
如果您知道投影内容是特定的 Angular 组件或元素应用了特定的模板变量,则可以使用@ContentChildren()(另请参阅angular 2 / typescript : get hold of an element in the template)。
【讨论】:
console.log(this.wrapper.nativeElement.innerHTML)中的.nativeElement