我对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 将只接受可以与 component
或 directives
绑定(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/