角度:根据情况设置按钮文字

时间:2019-06-21 06:57:09

标签: angular typescript

这是我的html代码段:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        if indexPath.section == 0 {
            let cell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as? FirstCell
            cell?.initData(name: datalist1[indexPath.row])
            return cell!
        }
        else {
            let cell = tableView.dequeueReusableCell(withIdentifier: "cell2", for: indexPath) as? SecondCell
            cell?.initData(lbl: datalist2[indexPath.row])
            return cell!
        }

    }

不过,我需要根据布尔组件字段设置按钮tet:

<button class="btn btn-primary">
    <i class="fa fa-edit" aria-hidden="true"></i>
    {{'ui.button.edit.text' | translate}}
</button>

所以,我需要:

  • 如果@Component({...}) export class UserManagementComponent { @Input('user') public set user(user: AdministrationUser) { this._user = user; }; private get toCreate(): boolean { return this._user.id === null; } } 为真,则按钮文本为this.toCreate
  • 否则,{{ui.button.save.text | translate}}

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以在此处使用简单的三元运算符

 {{ (toCreate ? 'ui.button.save.text' : 'ui.button.edit.text') | translate }}

从您的媒体资源中删除私人修饰符,因为它可能会导致产品构建中的构建问题

Stackblitz eample

答案 1 :(得分:1)

您可以通过多种方式进行操作,我在这里列出了其中两种。

<button class="btn btn-primary">
    <i class="fa fa-edit" aria-hidden="true"></i>
    <span *ngIf="toCreate()">{{'ui.button.save.text' | translate}}</span>
    <span *ngIf="!toCreate()">{{'ui.button.edit.text' | translate}}</span>
</button>

或者

<button *ngIf="toCreate()" class="btn btn-primary">
    <i class="fa fa-edit" aria-hidden="true"></i>
    {{'ui.button.save.text' | translate}}
</button>
<button *ngIf="!toCreate()" class="btn btn-primary">
    <i class="fa fa-edit" aria-hidden="true"></i>
    {{'ui.button.edit.text' | translate}}
</button>