Angular 查找ng内容中的所有元素

Angular 查找ng内容中的所有元素,angular,Angular,鉴于@ContentChildren('*')似乎不受支持,我正在寻找基本上可以访问ng content中所有组件的替代方法。 基本上,我希望我能做如下事情: @Component({selector: 'foo' template: `...`)} class FooComponent {...} @Component({selector: 'app' template: `<container><foo></foo></container>`

鉴于
@ContentChildren('*')
似乎不受支持,我正在寻找基本上可以访问
ng content
中所有组件的替代方法。 基本上,我希望我能做如下事情:

@Component({selector: 'foo' template: `...`)}
class FooComponent {...}

@Component({selector: 'app' template: `<container><foo></foo></container>`)}
class AppComponent {...}

@Component({selector: 'container', template: `<ng-content>/ng-content>`})
export class Container {
    @ContentChildren('*') allComponents;   //wish I could get FooComponent here!
}
@Component({选择器:'foo'模板:`…`)}
类组件{…}
@组件({选择器:'app'模板:``)}
类AppComponent{…}
@组件({selector:'container',模板:`/ng content>`})
出口类集装箱{
@ContentChildren('*')allComponents;//希望我能在这里得到FooComponent!
}
到目前为止,我提出了一些解决方法(在某些情况下被驳回):
1.拥有一个基本组件并使用
@ContentChildren(base)
查找:我不能这样做,因为其中一些组件不是我的,我希望避免绕过第三方。
2.查询本机元素,我必须有与之交互的组件并设置输入。
3.用指令或#id标记内部元素-作为最后手段,我可以这样做,但不幸的是,任何使用我的
ContainerComponent
的人都必须标记要处理的内容


这是一个很好的问题,对于
@ViewChildren
来说,这可能是一个普遍的问题well@Maximus@yurzui,谢谢,这很整洁,虽然可能不适用于制作:)。我认为你应该在这里使用
15
x=>x.flags&1我认为这是一个非常肮脏的解决方案。看来你是对的:我们应该使用
15
,而这个解决方案不适用于嵌套标记。我们需要为此编写更多的代码:)@yurzui,它不是脏的,它是未记录的:D