将ejs变量赋给js后无法读取属性

时间:2017-03-21 03:47:09

标签: javascript json express ejs

无论出于何种原因,此代码在if语句中返回类型错误。无法读取未定义的属性product.thumbgallery1。

var urlArray= [];
    var product = '<%- product %>';
     console.dir(product);


                for (var count = 1; count < 6; count++) {
                    var stringCount = count.toString();
                     if ( typeof product.data["product.thumbgallery" + stringCount].value.main.url === 'undefined' ) {
                         null
                     } else {
                            urlArray.push( product.data['product.thumbgallery' + stringCount].value.main.url )
                     }
                 }

有趣的是,这段代码有效:

var lol = '<%- product.data["product.thumbgallery1"].value.main.url %>';
    console.log(lol);

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

要将对象传递给ejs,您需要使用JSON.stringify

 var product = <%- JSON.stringify(product) %>;