在Angular2中,假设我有两个组件,一个列表和一个列表项。我希望列表项只能放在列表中:
<my-list>
<my-list-item>Foo</my-list-item>
</my-list>
有没有办法在TypeScript中强制执行此操作?
答案 0 :(得分:0)
在my-list-item
组件中执行此操作
和my-list-item
如果不在my-list
import {Component, ElementRef} from 'angular2/core';
@Component({
selector: 'my-list-item',
template: '<div *ngIf="insideMyList"> <ng-content></ng-content> </div>'
})
export class MyListItem{
public insideMyList: boolean = false;
constructor(elementRef: ElementRef) {
if(elementRef['internalElement'].parent.nativeElement.localName == 'my-list')
{
//do other stuff here
this.insideMyList = true;
}
}
}