ejs模板在js中的引用
发布于 8 年前 作者 linghao2014 5076 次浏览 来自 问答

今天遇到个特殊的情况,需要在js中引用页面的数据: 屏幕快照 2016-12-02 上午11.48.23.png 一共有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,
			...
		})
	}
}
回到顶部