【发布时间】:2018-06-07 12:13:53
【问题描述】:
我在此链接中使用“where”管道:
https://github.com/fknop/angular-pipes/blob/master/docs/array.md#where
可以与这样的函数一起使用:
const values = [{
a: 1,
c: {
d: 3,
e: {
f: 4
}
}
}, {
a: 2,
c: {
d: 4,
e: {
f: 5
}
}
}];
const numbers = [1, 2, 3, 4, 1, 4];
// ...
aEqualsOne(item) {
return item.a === 1;
}
//usage example :
{{ values | where: aEqualsOne }} <!-- [{ a: 1, c: { d: 3, e: { f: 4 } }] -->
现在我有了这个 ngFor:
<card *ngFor="let num of listOfNum | where: checkNum></card>
在组件中使用这个函数:
checkNum(num) {
console.log(num);
return num > 10;
}
但我必须修改函数以接受另一个参数:
checkNum(num, k) {
console.log(num + " > " + k + "?");
return num > k;
}
问题是我找不到将列表项和“k”都传递给传递给管道的函数的方法:
我试过了:
<card *ngFor="let num of listOfNum | where: checkNum(k)></card>
<card *ngFor="let num of listOfNum | where: checkNum(num, k)></card>
但目前没有成功..
我该怎么办?
【问题讨论】:
-
“我必须修改函数以接受另一个参数” 或者你创建一个从其他地方获取值的函数。
标签: angular function pipe parameter-passing