对象文字可以用作管道参数吗?

时间:2018-07-30 23:00:43

标签: angular typescript literals string-interpolation angular-pipe

我写了一个将对象作为参数的管道:

@Pipe({name: "myPipe"})
export class MyPipe implements PipeTransform {
    transform (value: string, options: any): string {
        // do stuff with value and options here
    }
}

当我为options使用变量时,效果很好:

<!-- this works fine -->
{{someString | myPipe: someObject}}

但是,如果我尝试使用文字代替:

<!-- this doesn't work -->
{{someString | myPipe: {foo: "bar"}}}

我在控制台中收到一个有趣的重复性错误:

  

错误错误:“ [对象对象]”

我认为这是因为对象文字在插值中表现不佳,但是我不确定该如何写。有没有一种方法可以不必在TypeScript中添加一堆额外的变量?

1 个答案:

答案 0 :(得分:0)

通过this GitHub issue

如果将整个表达式用括号括起来,它将起作用:

<!-- this works -->
{{(someString | myPipe: {foo: "bar"})}}

或者,如果您在最后两个大括号之前添加空格:

<!-- this also works -->
{{someString | myPipe: {foo: "bar"} }}