ejs模板在js中的引用
今天遇到个特殊的情况,需要在js中引用页面的数据: 一共有4条数据,但返回了4个相同的数据(都是第3个,还不是最后一个), 表示懵逼了
8 回复
我怀疑是ejs输出模板中的i不是for循环中的变量i
@linghao2014 经典的js for循环闭包问题,不是ejs的问题
@alsotang 懂了,我试试
@alsotang 并不是闭包的问题,push()里面的i是对的。(如果是闭包,也应该得到最后一个的数据)
已解决,分享一下吧。用ejs的循环方式就能成功了
模板渲染和js循环完全搞混了!
模板输出的所有数据好像都是字符串类型吧
@linghao2014 要分清楚模板输出和js直接输出…你需要在模板里面把musicData赋给一个变量
function iframeLoad() {
var songsArr = [];
var musicData = <%- JSON.stringify(musicData) %>
for( var i =0, len = musicData.length; i<len; i++ ) {
songArr.push({
id: musicData[i].mId,
...
})
}
}