【问题标题】:Angular ngFor, pass a multiple parameter function to pipeAngular ngFor,将多参数函数传递给管道
【发布时间】: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


【解决方案1】:

修改:

<card  *ngFor="let num of listOfNum | where: checkNum(k)></card>

到:

<card  *ngFor="let num of listOfNum | where: checkNum : k></card>

【讨论】:

  • 不工作 :( 从函数 checkNum 的日志看来,“k”值是某种索引(因为它从 0 到列表的长度)
猜你喜欢
  • 2017-07-30
  • 2018-07-22
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
相关资源
最近更新 更多