js对象的渲染错误

时间:2014-03-23 10:55:40

标签: javascript json node.js express

我有一些我想要渲染到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对象中的数据 - 它运行良好,但我需要这种类型的传递数据。感谢名单

1 个答案:

答案 0 :(得分:0)

这只是对我渲染的内容的误解,我正在渲染一个数组,所以我应该使用这个结构进行正确的调用并传递:

function d3_drawer(input_array, element_id) {
            for (var i=0; i < input_array.length; i++) {
                displayGraphExampleOne(element_id,
                input_array[i].data.values,
                input_array[i].meta.currentValue,
                input_array[i].meta.name,
                input_array[i].data.corridor.rmin,
                input_array[i].data.corridor.rmax,
                input_array[i].data.corridor.nmin,
                input_array[i].data.corridor.nmax);
            }
        }