我有以下代码:
for (var item in oldMenu) {
var newid = newID();
oldMenu[item].nodeId = newid;
db.selectDatas('pages','',{'datas.menu': item.nodeId},null,null,null,null, function(err1, page) {
if(page.length > 0) {
var oldPage = page[0].datas;
oldPage.menu = newid;
}
});
[
{
"nodeId": "e9c2b2a4-4583-eff9-d0de-bc4d7d2bf50f",
"nodeText": "Présentation",
"hasChildren": true,
"count": 0,
"expanded": true
},
{
"nodeId": "be225e39-9848-913a-1b18-0f3995e2199a",
"nodeText": "Installation",
"hasChildren": true,
"expanded": true
},
{
"nodeId": "aa41e413-be60-460f-dbbe-84284245414b",
"nodeText": "Premier lancement"
}
]
问题是未更改的nodeId
字段没有按预期的新值进行更改,我缺少了什么?
感谢您的帮助
答案 0 :(得分:0)
您在item.nodeId
查询中使用selectDatas
时应使用oldMenu[item].nodeId
。但是,您在上面的行中覆盖了该值,因此它可能会返回0个结果。
这就是我认为代码应该是的:
for (var item of oldMenu) {
var oldId = item.nodeId;
var newid = newID();
item.nodeId = newid;
db.selectDatas('pages','',{'datas.menu': oldId},null,null,null,null, function(err1, page) {
if(page.length > 0) {
var oldPage = page[0].datas;
oldPage.menu = newid;
}
});
}