gpt4 book ai didi

javascript - ember 并迭代 json 对象数组

转载 作者:行者123 更新时间:2023-11-28 01:41:53 25 4
gpt4 key购买 nike

我只是在测试 ember,所以这将是一个非常简单的问题(并且可能更像是一个 javascript 而不是 ember 问题)。我想迭代路线模型中的一组对象。它基本上是一个菜单,带有嵌套的menu_headers,每个menu_header可以有(子)menu_headers或menu_items。我将尝试发布大部分代码,以便如果有问题,希望可以指出。

{
"status": "success",
"data": {
"id": 5,
"name": "my menu here",
"menu_headers": [
{
"name": "menu header1",
"id": 13,
"menu_items": [
{
"id": 205,
"header": "my header"
}
],
"menu_headers": [
{
"id": 14,
"name": "menu header1",
"menu_items": [
{
"id": 34,
"header": "item",
"detail": "item detail"
},
{
"id": 34,
"header": "item2",
"detail": "item detail2"
}
]
}
]
}
]
}
}

型号:

Hex.Menu = Ember.Object.extend({
id: null,
name: null,
menu_headers: null
});

Hex.MenuHeader = Ember.Object.extend({
id: null,
name: null,
menu_headers: null
});

Hex.MenuItem = Ember.Object.extend({
id: null,
header: null,
detail: null,
menu_items: null

});

在我的 route ,如何迭代它(请参阅下面的注释部分)?我不知道它是 forEach 还是应该使用 jQuery $.each?另外,这样做可以实现两种方式的数据绑定(bind)吗?

Hex.MenuRoute = Ember.Route.extend({
model: function(params) {
return $.getJSON("/arc/v1/api/menus-test/5").then(function(data){
d=data.data;
var menu = Hex.Menu.create();
menu.set('id', d.id);
menu.set('name', d.name);
forEach() //???
// ????
return menu;
});
}
});

谢谢,如果对上述代码有任何建议或问题,我们将不胜感激。

最佳答案

jQuery 的 every 似乎都做得很好。想要递归地执行此操作,但这似乎工作正常。

    d=data.data;
var menu = Hex.Menu.create();
menu.set('id', d.id);
menu.set('name', d.name);
//forEach()
$.each(d.menu_headers, function(key, value){
var mh=Hex.MenuHeader.create();
mh.set('id',value.id);
mh.set('name',value.name);
$.each(value.menu_items, function(key2, mi){
var menu_item=Hex.MenuItem.create();
menu_item.set('id', mi.id);
menu_item.set('header', mi.header);
mh.menu_items.pushObject(menu_item);

});
$.each(value.menu_headers, function(k3, mh2){
var mh=Hex.MenuHeader.create();
mh.set('id',value.id);
mh.set('name',value.name);
mh.menu_headers.pushObject(mh);
});
menu.menu_headers.pushObject(mh);
});
return menu;

关于javascript - ember 并迭代 json 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com