Angular 2 NgIf,不要在条件下渲染容器元素,但要显示其子元素

时间:2016-12-04 17:12:13

标签: angular

如何在 angular 2 中执行以下操作?我用伪代码编写它以帮助解释更好。

我已尝试过应用类,但如果可能,我不希望它呈现容器div

我也试过<模板> 标签,但我可能遗漏了一些东西。感谢

<!-- ngIf: isPromo -->
<div class="promoContainer">
<!-- ngIf end -->

<div class="item">...</item>

<!-- ngIf: isPromo -->
</div>
<!-- ngIf end -->

2 个答案:

答案 0 :(得分:4)

解决方案是为内部HTML创建一个组件,并使用ngIf在封装版本和没有封装的版本之间切换,如下所示:

<div class="promoContainer" *ngIf='isPromo'>
    <promotable-component></promotable-component>
</div>

<promotable-component *ngIf='!isPromo'></promotable-component>

你有一个像这样定义的组件:

@Component({
  moduleId: module.id,
  selector: 'promotable-component',
  template: '<div class="item">...</item>'
})
export class PromotableComponent {}

答案 1 :(得分:0)

为什么不尝试这个呢

<!--if-->
<div class="promoContainer" *ngIf='isPromo'>    
    <div class="item">...</item>
</div>

<!--else-->
<div class="item" *ngIf='!isPromo'>...</item>