Разбор и фильтрация объекта массива в шаблоне angular2 - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть требование, когда я получаю ответ от службы, и в ответе у меня есть массив, который мне нужно проанализировать, чтобы получить определенные результаты:

// Это жестко закодированный массив, который у меня есть:

let staticArray = [
{"pid":165, 'value': 'value165'},
{"pid":166, 'value': 'value166'},
{"pid":167, 'value': 'value167'},
{"pid":168, 'value': 'value168'},
{"pid":169, 'value': 'value169'},
{"pid":170, 'value': 'value170'}

]

// Это ответ от сервера, это объект, содержащий массив данных, который мне нужно проанализировать, чтобы получить желаемые результаты:

let responseFromServer = 

{
    "data": [
        {"userData":[], "docs":[{ "pid": 165, "url":"someurl1"},
{ "pid": 167, "url":"someurl1"},
{ "pid": 168, "url":"someurl1"},
{ "pid": 165, "url":"someurl2"},
{ "pid": 167, "url":"someurl2"},
{ "pid": 168, "url":"someurl2"},
{ "pid": 168, "url":"someurl3"},
{ "pid": 165, "url":"someurl3"},
{ "pid": 165, "url":"someurl4"},
{ "pid": 167, "url":"someurl3"}]},

        {"userData":[], "docs":[{ "pid": 166, "url":"someurl1"},
{ "pid": 166, "url":"someurl2"},
{ "pid": 169, "url":"someurl1"},
{ "pid": 169, "url":"someurl2"},
{ "pid": 169, "url":"someurl3"}]},

        {"userData":[], "docs":[{ "pid": 165, "url":"someurl1"}]}
    ]
}

В файле шаблона:

<div *ngFor="let data of responseFromServer">

        <div *ngFor='let response of data.docs'>
         response ------
         value165
         someurl1
         count  = 4

        value167
         someurl1
        count = 3

         value168
         someurl1

        count = 3

        response ----------

        value166
        someurl1
        count = 2

        value169
        someurl1
        count = 3

        response ----------

        value165

        someurl1
        count = 1

        </div>
</div>

Требуемый вывод в шаблоне:

responseArr[0] ------
 value165
 someurl1
 count  = 4

value167
 someurl1
count = 3

 value168
 someurl1

count = 3

responseArr[1] ----------

value166
someurl1
count = 2

value169
someurl1
count = 3

responseArr[2] ----------

value165

someurl1
count = 1

Можно ли получить желаемые результаты, когда я могу '• фильтровать данные в ts-файле и делать это в html-файле шаблона.

Может кто-нибудь предложить угловую трубу, которую я могу использовать?

Пожалуйста, дайте мне знать, если мой вопрос неопределенный.

Спасибо!

...