Javascript 如何将ng内容与ng容器一起使用?
当组件位于Javascript 如何将ng内容与ng容器一起使用?,javascript,angular,Javascript,Angular,当组件位于ng容器中时,我无法显示它们。我有一个循环的项目数组,其中每个项目都有一个布尔值,即用户是否可以根据其访问权限查看该项目。因为我不能在一个元素上放置两个结构指令,所以我决定对ngFor使用ng容器,然后将ngIf放置在组件上 这是主侧导航组件,显示侧导航项目列表 @组件({ 选择器:“侧导航”, 模板:“” }) 导出类SideNav{} 这是一个示例侧导航项目(为此,除了显示h2外,它什么也不做): @组件({ 选择器:'侧导航项目', 模板:“侧导航项目” }) 导出类SideN
ng容器中时,我无法显示它们。我有一个循环的项目数组,其中每个项目都有一个布尔值,即用户是否可以根据其访问权限查看该项目。因为我不能在一个元素上放置两个结构指令,所以我决定对ngFor
使用ng容器
,然后将ngIf
放置在组件上
这是主侧导航组件,显示侧导航项目列表
@组件({
选择器:“侧导航”,
模板:“”
})
导出类SideNav{}
这是一个示例侧导航项目(为此,除了显示h2外,它什么也不做):
@组件({
选择器:'侧导航项目',
模板:“侧导航项目”
})
导出类SideNaviItem{}
这利用了上述两个组件
@组件({
选择器:“主导航”,
模板:`
`
})
导出类主导航{
sideNavItems:ISidNavItem[]=[
{
hasAccess:true,uri:“/dashboard”
}
]
}
在本文中,我希望看到打印两个组件,但我只得到最后一个组件,因为它不在ng容器中。使用此ngFor
和ngIf
如何使此工作正常?您可以在MainNav
模板中使用ngProjectAs
@Component({
selector: 'main-nav',
template: `
<side-nav>
<ng-container *ngFor="let item of sideNavItems" ngProjectAs="side-nav-item">
<side-nav-item *ngIf="item.hasAccess"></side-nav-item>
</ng-container>
</side-nav>
<side-nav>
<side-nav-item *ngFor="let item of sideNavItems"></side-nav-item>
</side-nav>
`
})
export class MainNav {
sideNavItems: ISidNavItem[] = [
{
hasAccess: true, uri: '/dashboard'
}
]
}
@组件({
选择器:“主导航”,
模板:`
`
})
导出类主导航{
sideNavItems:ISidNavItem[]=[
{
hasAccess:true,uri:“/dashboard”
}
]
}
通过这种方式,ng内容的select
将ng容器
作为侧导航项
了解更多关于ngProjectAs的有用性:我以前从未使用过,谢谢!