今天遇到个特殊的情况,需要在js中引用页面的数据: 一共有4条数据,但返回了4个相同的数据(都是第3个,还不是最后一个), 表示懵逼了
我怀疑是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, ... }) } }
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
我怀疑是ejs输出模板中的i不是for循环中的变量i
@linghao2014 经典的js for循环闭包问题,不是ejs的问题
@alsotang 懂了,我试试
@alsotang 并不是闭包的问题,push()里面的i是对的。(如果是闭包,也应该得到最后一个的数据)
已解决,分享一下吧。用ejs的循环方式就能成功了
模板渲染和js循环完全搞混了!
模板输出的所有数据好像都是字符串类型吧
@linghao2014 要分清楚模板输出和js直接输出…你需要在模板里面把musicData赋给一个变量