2017-07-14 84 views
2

我不能理解下面的代码中的一件事 - 为什么(limit)在括号中?Angular4 - 自定义管道创建

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

@Pipe ({ 
name: 'summary' 
}) 

export class SummaryPipe implements PipeTransofm { 
transform(value: string, limit?: number) { 
    if (!value) 
    return null; 

    let specificLimit = (limit) ? limit : 50; 
    return value.substr(0, specificLimit); 
} 
} 

感谢

这里的截图,可以肯定我复制是正确的:因为真实状况缺乏一个表达

enter image description here

+0

你确定你复制了那部分'(限制)? :50;'正确?它似乎是一个不正确的语法 –

+0

@Maximus,我相信,我从教程的视频添加了一个屏幕截图,来自Udemy.com - https://www.udemy.com/angular-2-tutorial-for-beginners –

+1

是的,这是一个不同的情况,它现在是正确的语法。括号只是一种样式偏好,当我们有一个像'(limit === 3)这样的表达式时,它们对我更有意义?限制:50' –

回答

1

该代码将引发语法错误。在你的例子中不需要括号,你可以写它像

let specificLimit = limit ? : 50; 

太,但就像我说的这会抛出一个错误。你必须给它的价值,当三元产量是真实的,所以类似:

let specificLimit = limit ? limit : 50;