ng-repeat如何使重复键无效但保留行数据?

时间:2018-08-06 13:32:00

标签: javascript html angularjs

我有一张桌子,看起来像下面的图片 enter image description here

如您所见,由于每行代表不同的数据,因此右侧的文本重复,我想拥有不同的行,并且希望在同一行中显示每个“فدية”的数据。

角度代码:

<tbody ng-repeat="(key, value) in vm.reportData | groupBy :'ProductNameAR'">

    <tr ng-repeat="item in value">
        <td>{{item.ProductNameAR}}</td>
        <%-- CHANNEL '  نقاط البيع' --%>
        <td>{{item.ChannelID == 1 ? item.Amount : 0}}</td>
        <td>{{item.ChannelID == 1 ? item.Value :  0}}</td>
        <td>0</td>
        <td>0</td>
        <%-- CHANNEL ' المسلخ' --%>
        <td>{{item.ChannelID == 4 ? item.Amount : 0}}</td>
        <td>{{item.ChannelID == 4 ? item.Value : 0}}</td>
        <td>0</td>
        <td>0</td>
        <%-- CHANNEL  ' السوق الإلكتروني' --%>
        <td>{{item.ChannelID == 2 ? item.Amount : 0}}</td>
        <td>{{item.ChannelID == 2 ? item.Value : 0}}</td>
        <td>0</td>
        <td>0</td>
        <td>2</td>
        <td>950</td>
    </tr>
</tbody>

我收到的Json数据如下所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

在呈现给视图之前过滤重复项 提取原始数据并首先过滤 假设您的数组在arr上,并且没有重复的数组是newArr

var newArr = [];
 arr.forEach(function(value){
    if(!newArr.some(elem => elem.id === value.id){
        newArr.push(value);
    }
})

在newArr上的此数据可以用于没有重复的重复标识符

相关问题