在API的其他元素上添加新元素

时间:2017-12-26 10:27:07

标签: angular

我有两个组件string path = @"C:\Users\gmbalaa\Desktop\Test.txt"; if (File.Exists(path)) { var arrVal = File.ReadAllLines(path); } add-product.component

在我的show-list组件中,我的列表来自list-product API,此API在body中有3个参数(user_id,session_key,page)。第3个参数页面只是当list = 0时将list-product分成15,如果page = 1我有30个元素......等等

问题是当我想在show-list.component中添加产品时,我希望add-product.component显示它而不刷新页面以再次获取API调用,所以我想添加然后新产品以特殊的方式,当用户刷新页面时,API中的真实元素出现并显示在show-list Component中。

我试图调用2个API来实现这一点,所以当我添加新产品时添加产品API调用和onSuccess列表产品API调用,但这里的问题是元素不能起初因为我使用这样的推送数据:

show-list.component

在我的HTML中:

this.result.data.products.forEach(item => {
this.data.push(item);
});

在我的控制台中: Elements from API

现在,如果我添加id = 3906的新产品,如何将此元素添加到其他元素之上,如果用户刷新页面我没有问题,因为它已经是第一个元素了。

2 个答案:

答案 0 :(得分:0)

如果您希望对值数组进行排序,那么您可以做的一件事就是在添加新元素后重新排序数组:

this.data.push(item); // or push many items 

this.data.sort(function(a,b) {
    return a.product_id - b.product_id;
});

这样,新值将处于正确的位置。

答案 1 :(得分:0)

如果要在数组的开头添加元素,请使用Array.unshift()代替Array.push()