我为sharepoint页面创建了一个自定义顶级菜单。代码如下: 代码基本上是遍历菜单项列表,然后从另一个共享点列表中获取子菜单项,然后我显示菜单。它工作,但每次我加载页面,菜单项总是有一个随机的顺序,我怀疑它是因为我在foreach中使用的ajax调用。但我现在仍然坚持下一步该做什么。
注意:topMenuItems具有正确的排序顺序但是当我显示菜单时,顶部菜单总是随机重新排列。
_.forEach(topMenuItems, function (menuItem) {
var subMenuUrl = //RESTAPI URL
$.ajax({
url: subMenuUrl,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
success: function (data) {
var smItems = data.d.results;
var name = menuItem.MenuTitle;
var menuId = menuItem.ID;
var url = menuItem.Navigation_x0020_URL;
var urlMain = '';
SubmenuNames = "<ul>";
_.forEach(smItems, function (subMenuItem) {
// code for displaying the menu goes here
});
},
error: function (error) {
alert(JSON.stringify(error));
}
});
});
控制台日志类似于:
topMenu ID项目:1,2,3,4,5,6
但是当我在_.forEach中记录顶部菜单ID时(smItems,function(subMenuItem){
// code for displaying the menu goes here
});
我得到的随机订单如:1,2,5,3,4,6。