angular - Angular 4 的箭头函数(Lambda 函数)

标签 angular typescript lambda

我对lambda知之甚少,lambda表达式被当作一个函数来处理。我们有很多方法可以做到这一点。

这是我在 TypeScript 文件上的简单函数

 byPan(card1,card2){
    return card1.pan == card2.pan;
 }

我在 HTML 文件中使用

 <select [compareWith]="byPan" class="form-control" [(ngModel)]="card">
     <option *ngFor="let cardInfo of cards" [ngValue]="cardInfo">{{cardInfo.pan}}</option>
 </select>

如果我想在 lambda 中替换这个函数,那么我可以这样写。

var myFunc2 = (card1, card2) => { return card1.pan == card2.pan};  

所以我的问题是,我可以直接在任何 Angular 属性上使用这个 lambda 函数,例如 compareWith 或类似的东西吗?

 <select [compareWith]="(card1,card2)=> { return card1.pan == card2.pan}" class="form-control" [(ngModel)]="card">
     <option *ngFor="let cardInfo of cards" [ngValue]="cardInfo">{{cardInfo.pan}}</option>
 </select>

最佳答案

你不能只在模板中执行箭头函数。 Angular 将只接受可以与 componentdirectives 绑定(bind)的表达式。所以基本上不行,你不能在模板中使用箭头函数。最好将它作为方法保留在您的 组件 中。

然而,如果你正在寻找小表达式,你可以使用 shorthand if 它可能看起来像:

[compareWith]="card1.pan == card2.pan" // returns bool value

[compareWith]="card1.pan == card2.pan ? 'foo' : 'bar".

关于angular - Angular 4 的箭头函数(Lambda 函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47647704/

相关文章:

angular - 元数据版本与 Angular 4 不匹配

angular - ng build --prod index.html 文件没有生成后?

java - 为什么耗时的测量是错误的?

java - StackTraceElement getFileName() 在 lambda 上给出 null

c++ - lambda 捕获变量中的垃圾值作为回调

angular - Ionic 和 Firebase - InvalidPipeArgument : '[object Object]' for pipe 'AsyncPipe'

Angular 4动态路由

typescript - 如何使用 react-query 重复向同一个 API 发送请求?

javascript - 如何使用 Angular 组件观察组件绑定(bind)变化

typescript - ECMAScript 2016 装饰器是否使 TypeScript 装饰器变得多余?