【发布时间】:2018-03-13 15:42:04
【问题描述】:
我用vue js做了一个购物车,想保持产品按输入的顺序显示。问题是产品是关联数组,其 id 用于键
类似[1 => ['name' => 'product1', 'price' => 100', 'quantity' => 1]]
其中键 1 是产品的 id。问题是当我将购物车对象作为 json 返回时,产品数组默认按其键查看排序。
这是我的代码:
let app = this
axios.post(app.addToCartRoute, {
_token: '{{ csrf_token() }}',
product_slug: slug
})
.then(function(response) {
if(!app.showCart) {
setTimeout(() => {
app.cart = response.data
}, 250)
}
else {
app.cart = response.data
}
app.showCart = true
console.log(response.data)
})
.catch(function(error) {
console.log(error)
})
假设我首先将 id 为 3 的产品添加到购物车中,数组如下所示:[3 => ['name' => 'product3', 'price' => 15.00]] 然后我添加 id 为 1 的产品,数组开始如下所示:[1 => ['name' => 'product1', 'price' => 13.00], 3 => ['name' => 'product3', 'price' => 15.00]]
我不希望这样,但 vue js 似乎默认订购它们。如何避免?
【问题讨论】:
-
如果添加到购物车的顺序很重要,您应该在添加时将顺序存储为对象的属性。
-
这就像你的服务器端代码可能正在订购它
-
@chiliNUT 我查过了,返回的服务端json没问题,是vue js重新排序
-
您能否从浏览器网络调用中发布“axios.post(app.addToCartRoute)”的请求负载和响应
标签: javascript php arrays laravel vue.js