管道处有角度的分割字符串,并同时使用两个字符串

时间:2018-11-28 08:20:40

标签: angular pipe

要求: 我有这样一个用管道分隔的字符串-“某些值|其他值”。我需要在管道上拆分它并使用两个值。因此,我正在尝试在如下模板中实现它。

{{row.full_value | splitDelimiter:'|':'beforeSeparator'}}
{{row.full_value | splitDelimiter:'|':'afterSeparator'}}

我正在尝试使用以下代码。知道为什么会引发错误吗? 预先感谢您的帮助:)

@Pipe({
  name: 'splitDelimiter'
})
export class SplitDelimiter implements PipeTransform {
  transform(value:string, [separator], [firstOrLastValue]):string {
    let splits = value.split(separator);
    if(splits.length > 1) {
        if(firstOrLastValue.toString() == "beforeSeparator") {
            return splits.shift();
        }
        if(firstOrLastValue.toString() == "afterSeparator"){
            return splits.pop();
        }
    } else {
      return 'Null';
    }
  }
}

// usage : 
// {{stringToSeparate | splitDelimiter:'|':'beforeSeparater'}}

1 个答案:

答案 0 :(得分:1)

您没有在管道中正确获取参数。它们不是数组:

export class SplitDelimiter implements PipeTransform {
  transform(value:string, separator, firstOrLastValue):string {
    let splits = value.split(separator);
    if(splits.length > 1) {
        if(firstOrLastValue === "beforeSeparator") {
            return splits.shift();
        }
        if(firstOrLastValue === "afterSeparator"){
            return splits.pop();
        }
    } else {
      return 'Null';
    }
  }
}