【问题标题】:How to show a tab title in angular 2 only if I have more than one tab仅当我有多个选项卡时,如何以角度 2 显示选项卡标题
【发布时间】:2018-02-02 13:47:07
【问题描述】:

使用 angular 2,我使用的是<tabs> 元素。我迭代了一些条件以将它们显示为不同的选项卡。代码如下所示:

<tabs>
    <tab *ngFor="let item of items; let index = index" [title]="'message.productDetail.'+(index>0?'end':'start')">
    ...
    </tab>
</tabs>

我想添加一个条件以仅在 items.length &gt; 1 时显示 [title]。我想避免显示只有一个标签的标签。

我尝试输入条件文本like here,但它仍然显示选项卡(没有文本)。我想隐藏标签。

例如,如果我有多个选项卡,我想显示“Tab 1”和“Tab 2”。但是,如果我只有“Tab 1”或“Tab 2”,我希望将这些选项卡视为面板。

我想显示选项卡的内容,我只是不想拥有“选项卡选择器”,因为它是不必要的并且占用大量空间。我希望它表现得像一个面板。

我让它工作的方式不是很好,因为我做了一些复制和粘贴代码。像这样:

<tabs *ngIf="items.length > 1">
    <tab *ngFor="let item of items; let index = index" [title]="'message.productDetail.'+(index>0?'end':'start')">
    ... Content using item variable
    </tab>
</tabs>

<div *ngIf="items.length == 1">
    ... Same content as before using a hardcoded items[0] variable
</tabs>

【问题讨论】:

  • 您希望在每个标签上添加[title] 来实现什么?如果你能表达你想要的输出那就太好了。
  • 如果我只有一个标签,我希望标签的行为类似于面板
  • @sebadagostino ,你有任何工作演示,我们可以看到吗?

标签: javascript angular tabs


【解决方案1】:

答案在https://github.com/angular/angular/issues/2869

你可以这样做

<tabs>
<tab *ngFor="let item of items; let index = index"   
[attr.title]="items.length > 1 ? 'message.productDetail.'+(index>0?'end':'start') : undefined">
...
</tab>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 2017-06-27
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
相关资源
最近更新 更多