将字符串操作和管道一起使用时出现问题

时间:2017-12-06 06:15:47

标签: angular angular-pipe

我在Angular 2.0模板中有一个HTML,如下所示:

<span> Total Employee {{employeeCount> 0 ? '(' + employeeCount+ ')' : ''}} ></span>

我的customFormatter接受一个值,并使用逗号分隔符格式化它,如果它是一个数字。

工作正常。现在我想使用自定义管道来格式化员工数量,我使用了以下代码:

<span> 
   Total Employee {{employeeCount> 0 ? '(' + employeeCount | customFormatter + ')' : ''}} >
</span>

但是它给出了语法错误:“错误:模板解析错误:解析器错误:条件表达式......”

我使用时管道正常工作:

<span> Total Employee {{employeeCount | customFormatter }} ></span>

如何解决我的问题?

3 个答案:

答案 0 :(得分:0)

您应该在customFormatter管道

中编写此逻辑
export class CustomFormatterPipe implements PipeTransform{

     transform(employeeCount){
      if({employeeCount> 0){
          // your logic here
      } else {
           return '';
      }

}

答案 1 :(得分:0)

试试这个。

<span> 
Total Employee {{employeeCount> 0 ? '(' + employeeCount + ')'| customFormatter : ''}}
</span>

答案 2 :(得分:0)

这不是您问题的直接解决方案,但只有在员工人数大于零时,才能使整个<span>及其内容呈现:

<span>
    Total Employee
    <span ng-show="employeeCount > 0">{{employeeCount | customFormatter}}</span>
</span>

当计数为零时,跨度将不可见,但仍会占用DOM中的相同空间,这可能相当于仅使用空字符串作为内容呈现该跨度。