2014-06-19 205 views
0

我有一个问题,使用Node和Angular从JSON(来自MongoHQ的BSON)读取嵌套数组。NodeJS/AngularJS - 从JSON读取对象数组

JSON片段http://pastie.org/9305682。特别注意边缘数组。

猫鼬模型http://pastie.org/9305685

基本上我打电话从数据库中的字符,然后尝试将其与 的console.log(炭)登录到控制台上;,然后将其发送回角度呼叫res.json(char);'char'是数据库中返回的保存为我的猫鼬模型的字符。

试图将角色登录到控制台。 除了嵌套“效果”阵列的部分外,我看到的一切看起来都正常。任何地方,他们显示我收到以下:

edges:                                                           
[ { name: 'Super Hacker', notes: '', effects: [Object] },                                              
    { name: 'Witty', notes: '', effects: [Object] },                                               
    { name: 'Attractive', notes: '', effects: [Object] },                                              
    { name: 'Encyclopedic Memory',                                                    
    notes: 'Prereq: d8 Smarts',                                                    
    effects: [Object] },                                                      
    { name: 'Daywalker', notes: '', effects: [Object] },                                              
    { name: 'Tough', notes: '', effects: [Object] } ],  

从这里,如果我尝试调用它:

从的NodeJS - 的console.log(焦[0] .edges [0]。影响[0] .TYPE); - 返回未定义。

从角度视图 - {{cur_char.edges [0] .effects [0] .type}} - 什么都不显示。

在此先感谢您的帮助。让我知道如果我可以提供更多的英寸

+0

你试过只是CONSOLE.LOG(的char [0] .edges [0]影响[0]),看是否对象被返回JSON? – JoshSGman

+0

调用这个我得到[对象对象]。 – Tyrrexx

回答

0

我想你问的是如何看到更多的深度在控制台输出的对象。您可以使用util.inspect打印出更多的信息:

console.log(util.inspect(char, { depth: 5 })); 

默认情况下util.inspect只到2的深度这就解释了为什么你只能看到阵列(1)和各元素的原始属性的内容阵列(2)。

参见:http://nodejs.org/api/util.html#util_util_inspect_object_options

+0

好的,我试过了。尽管我仍然得到了[object]的相同结果。 – Tyrrexx

+0

它似乎为我工作。这是我创建的一个脚本来测试它。在屏幕上,我可以看到控制台中显示的所有边缘的“效果”。 https://gist.github.com/anonymous/f8f29903010a6f425e03我命名文件'char.js'并运行:'node char.js' – Hayes

+0

嗯,是的,这样做也适用于我。我认为问题在于效果数组需要被视为自己的模式。无论我决定只是将效果保持为单个字符串数组而不是对象的一个​​数组。谢谢您的帮助! – Tyrrexx