我有一些我想要渲染到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: JSON.stringify(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对象中的数据 - 它运行良好,但我需要这种类型的传递数据。 感谢名单
答案 0 :(得分:0)
不要JSON.stringify
对象,而是传递对象本身,否则你试图访问字符串的属性,这显然不存在。
答案 1 :(得分:0)
只需格式化代码:
var dataSet1= [
{
"meta": {
"name": "Veocity variance",
"minimum": mini_1,
"maximum": maxi_1,
"currentValue": last_data_1
},
"data": {
"values": dataOne,
"corridor": {
"x1": xc,
"x2": yc1,
"yw": yw1
}
}
}
];
并使用此类电话:
displayGraphExampleOne("#graph",
!{first_set}[0][0].data.values,
!{first_set}[0][0].meta.currentValue,
!{first_set}[0][0].meta.minimum,
!{first_set}[0][0].meta.maximum,
!{first_set}[0][0].meta.name,
!{first_set}[0][0].data.corridor.x1,
!{first_set}[0][0].data.corridor.x2,
!{first_set}[0][0].data.corridor.yw);
但不要忘记渲染:
res.render('index', {
first_set: JSON.stringify([dataSet1, dataSet2, dataSet3]),
second_set: JSON.stringify([dataSet1, dataSet2, dataSet3]),
third_set: JSON.stringify([dataSet1, dataSet2, dataSet3])
});