将布尔值更改为角度2客户端中的文本

Mal*_*iri 7 typescript angular

详情

我试图从api获取数据并在列表中显示包含status属性,该属性返回true或false值但我想在客户端显示Active或Block而不是this.我怎样才能在角度2中实现这一点.

在此输入图像描述

Din*_*tro 23

我建议根据布尔值返回活动或阻塞的管道.

import {Pipe, PipeTransform} from '@angular/core';

@Pipe({name: 'activeBlocked'})
export class ActiveBlockedPipe implements PipeTransform {
    transform(value) {
        return value ? 'Active' : 'Blocked';
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以在你的组件模板中使用它:

{{value | activeBlocked}}
Run Code Online (Sandbox Code Playgroud)

在我看来,这是最容易重用的.

  • 注意将此管道添加到app.module.ts中的声明数组中 (2认同)

bas*_*rat 6

我如何能够在角度2中做到这一点

只需使用javascript / typescript:

const valueFromServer = false; // Assuming
const toShow = valueFromServer ? 'Active' : 'Blocked';
Run Code Online (Sandbox Code Playgroud)

  • `{{user.IsActive == true吗?'有效':'阻止'}}` (3认同)
  • @AhmedJalal Angular团队不建议在模板表达式内使用任何逻辑:https://angular.io/docs/ts/latest/guide/template-syntax.html#!#simplicity。因此最好放置`user.IsActive?'Active':组件或管道中的“ Block”代码(如下所述-http://stackoverflow.com/a/38321811/4956536) (2认同)

Des*_*ley 6

您可以直接在视图中执行此操作:

<td>{{user.IsActive && 'Active' || 'Block'}}</td>
Run Code Online (Sandbox Code Playgroud)

  • 更容易阅读:`user.IsActive?'活动':'阻止' (3认同)

小智 5

简单的方法是在 td 元素内使用条件运算符

<td>{{user.status ? 'Active' : 'Block'}}</td>
Run Code Online (Sandbox Code Playgroud)