【问题标题】:Wrong rendering of js objectjs对象渲染错误
【发布时间】: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


【解决方案1】:

这只是我渲染的内容的误解,我正在渲染一个数组,所以我应该使用这个构造来正确调用和传递:

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);
            }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2015-05-11
    • 1970-01-01
    相关资源
    最近更新 更多