Angular2-如何执行仅子组件强制?

Angular2-如何执行仅子组件强制?,angular,Angular,在Angular2中,假设我有两个组件,一个列表和一个列表项。我希望列表项只能放置在列表中: <my-list> <my-list-item>Foo</my-list-item> </my-list> 福 是否有办法在TypeScript中强制执行此操作?在您的我的列表项中执行此操作 如果my list item不在my list 从'angular2/core'导入{Component,ElementRef}; @组成部分({ 选择

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

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

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

在您的
我的列表项中执行此操作

如果
my list item
不在
my list

从'angular2/core'导入{Component,ElementRef};
@组成部分({
选择器:“我的列表项”,
模板:“”
})
导出类MyListItem{
public-insideMyList:boolean=false;
构造函数(elementRef:elementRef){
if(elementRef['internalElement'].parent.nativeElement.localName=='my list')
{ 
//在这里做其他事情
this.insideMyList=true;
}
}
}

在您的
我的列表项中执行此操作

如果
my list item
不在
my list

从'angular2/core'导入{Component,ElementRef};
@组成部分({
选择器:“我的列表项”,
模板:“”
})
导出类MyListItem{
public-insideMyList:boolean=false;
构造函数(elementRef:elementRef){
if(elementRef['internalElement'].parent.nativeElement.localName=='my list')
{ 
//在这里做其他事情
this.insideMyList=true;
}
}
}

您的意思是说
我的列表项
指令只有在用
我的列表
包装时才有效?是的。我的列表项应该只能存在于我的列表中TypeScript与此相关吗?如果您希望
我的列表项
仅位于
我的列表
中,请不要在其他任何地方编写它。也许他是想说他希望解决方案使用TS而不是JS。但是我们怎么知道呢
8小时前出现
您的意思是说
我的列表项
指令只有在用
我的列表
包装时才有效?是的。我的列表项应该只能存在于我的列表中TypeScript与此相关吗?如果您希望
我的列表项
仅位于
我的列表
中,请不要在其他任何地方编写它。也许他是想说他希望解决方案使用TS而不是JS。但是我们怎么知道呢<代码>8小时前看到
如果父元素中有我的列表
元素,该怎么办,但是它是父对象的父对象?然后,不只是检查直接父对象,而是对父对象的父对象的父对象运行一个循环,直到父对象变成
my list
undefined
body
如果父对象中存在
my list
元素,但它是父项的父项?然后,不只是检查直接父项,而是为父项的父项的父项运行一个循环,直到父项成为我的列表或未定义的子项