【发布时间】:2016-12-04 13:04:47
【问题描述】:
已解决!!
我有一个带有 javascript 可排序菜单的弹出窗口。菜单的元素属于猫鼬模式,我想根据来自菜单的新订单列表更新数据库。让我更好地解释一下。我有这个猫鼬模式:
({
title: { type: String },
POI: [{
POIname: { type: String },
POIlocation: { type: String },
POItext: { type: String }
}]
})
我将数组 POI 从 Express 传递到客户端,
#popupbox
#riordinabox
#divhead
span#exitbox(onclick="closepopupbox('popupbox')", title="EXIT") X
p Trascina il POI per riordinare la lista
#divlistaPOI
each POI in POIs
.divpopupbox(id="#{POI.POIname}", draggable="true", ondragenter="dragenter(event)" ondragstart="dragstart(event)")
p #{POI.POIname}
#divfooter
如您所见,.POIname 元素创建了菜单。允许用户更改列表的顺序并保存新的顺序。例如默认顺序是:
({
title: "sometitle",
POI: [{
POIname: "jump",
POIlocation: table,
POItext: "jump on the table"
}],
[{
POIname: "run",
POIlocation: street,
POItext: "run on the street"
}],
[{
POIname: "turnR",
POIlocation: everywhere,
POItext: "turn right"
}]
})
并且可排序的菜单显示:
- 跳
- 运行
- 转R
用户操作后,新的订单列表为:
- 运行
- 转R
- 跳
现在我想获取新订单并在数据库中设置相同的订单,因此我可以看到
({
title: "sometitle",
POI: [{
POIname: "run",
POIlocation: street,
POItext: "run on the street"
}],
[{
POIname: "turnR",
POIlocation: everywhere,
POItext: "turn right"
}],
[{
POIname: "jump",
POIlocation: table,
POItext: "jump on the table"
}]
})
而且我知道先到哪一步。
有什么想法吗?
谢谢!
【问题讨论】:
-
为什么不用数组?
var steps = [{step1}, {step2}, {step3}],这样你就可以像这样更新步骤,var temp = step[1]; steps[0] = temp, steps[1] = step[0] -
是的,但是最大的问题是如何向Mongodb发送和设置新订单!
-
您实际上可以按原样保存它,整个步骤数组,
document.title = "sometitle"; document.steps = steps; document.save()这取决于您如何构建架构
标签: javascript node.js mongodb jquery-ui-sortable mongoose-schema