фильтровать значения массива с угловым - PullRequest
0 голосов
/ 27 ноября 2018

В угловом ответе json, как показано при строковом кодировании

console.log("point data "+JSON.stringify(res,data.data));

мой ответ json имеет этот формат

"Monday : meeting invite"
...
"Notice : Come to hall"

Я пытаюсь выполнить итерацию по приведенному выше списку в представлении

$rootScope.allData = res.data.data;

<li ng-repeat="myData in allData ">

{{allData}} //prints Monday : meeting invite
</li>

как это сделать после итерации - это сложная задача

<li ng-repeat="myData in allData ">

  Today:   {{allData}} // to print "Monday"
  Task:   {{allData}} //to print meeting invite
    </li>

это потому, что: представляет новые данные

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Элегантный способ с функциями массива

$rootScope.allData = res.data.data.map(function(dataItem) {
    const dataItemParts = dataItem.split(':').map(function(part){
        return part.trim();
    });

    return {
        head: dataItemParts[0],
        content: dataItemParts[1]
    }
})

А затем

<li ng-repeat="myData in allData ">  
  Today:   {{myData.head}} // to print "Monday"
  Task:   {{myData.content}} //to print meeting invite
</li>

Для удаления повторяющихся значений с помощью js вы можете использовать

<li ng-repeat="myData in allData track by myData.head+myData.content">  
  Today:   {{myData.head}} // to print "Monday"
  Task:   {{myData.content}} //to print meeting invite
</li>
0 голосов
/ 27 ноября 2018

В привязке данных вы можете сделать split (':')

<li ng-repeat="myData in allData ">

Today:   {{allData.split(':')[0]}} // to print "Monday"
Task:   {{allData.split(':')[1].trim()}}} //to print meeting invite
</li>

Обрезать () здесь необязательно.Это не то, что я бы сделал, хотя.Это выполняет работу, но я бы предпочел создать / отобразить allData новый массив объектов, имеющий два свойства.Заголовок и задание.Затем получите к ним доступ во время итерации.

// mappedData is mapped from allData
<li ng-repeat="data in mappedData track by data.Heading + data.Task">

Today:   {{data.Heading}} // to print "Monday"
Task:   {{data.Task}}} //to print meeting invite
</li>

Обновление : согласно user10445503 Мой код требует отслеживания.Добавляю это в мой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...