【发布时间】:2014-03-23 10:55:39
【问题描述】:
我有一些结构要渲染到我的 JADE 页面,所以我决定制作类似 JSON 的对象来渲染某种数据(变量、文本、js 对象),这个 JSON 对象看起来像:
var dataSet1 = {
meta: {
"name": "Some text",
"minimum": mini_2,
"maximum": maxi_2,
"currentValue": last_data_2
},
data: {
"values": dataTwo,
"corridor": {
"x1": xc,
"x2": yc2,
"yw": yw2
}
}
};
我的渲染线:
res.render('index', {
data_to_draw: dataSet1
});
然后我在我的 JADE 上使用这个渲染数据:
displayGraphExampleOne("#graph",
!{data_to_draw.data.values},
!{data_to_draw.meta.currentValue},
!{data_to_draw.meta.minimum},
!{data_to_draw.meta.maximum},
!{data_to_draw.meta.name},
!{data_to_draw.data.corridor.x1},
!{data_to_draw.data.corridor.x2},
!{data_to_draw.data.corridor.yw2});
无法读取未定义的属性“值”我收到此类错误。 我是 JS 新手,所以我试图确定我做错了什么。如果我将不在 js 对象中传递数据 - 它运行良好,但我需要这种类型的传递数据。谢谢
【问题讨论】:
-
除了您引用了一些(但不是全部)属性名称(这是有效的 JS)之外,您的对象只是一个对象,而不是 JSON 对象。我提到这一点是因为您在上面有代码片段,因此如果您在
dataSet1上操作以使用它执行 JSON 操作,您最终可能不会得到您想要获取的对象。在您的渲染命令之前的console.log(dataSet1)可能会给您一个提示(或者如果您崩溃并丢失控制台输出,则代替render())。您也可以console.log(require('util').inspect(dataSet1, {depth: null}))获取完全展开的对象。
标签: javascript json node.js express