Angular ngFor, передать функцию с несколькими параметрами в канал - PullRequest
0 голосов
/ 07 июня 2018

Я использую канал '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>

но пока безуспешно ..

Что мне делать?

1 Ответ

0 голосов
/ 07 июня 2018

Изменить:

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

до:

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