Angular2 - 如何执行仅限子组件的执行?

时间:2016-03-19 07:20:39

标签: angular

在Angular2中,假设我有两个组件,一个列表和一个列表项。我希望列表项只能放在列表中:

<my-list>
    <my-list-item>Foo</my-list-item>
</my-list>

有没有办法在TypeScript中强制执行此操作?

1 个答案:

答案 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;
     }
  }
}