CNode

ejs模板在js中的引用

问答
Llinghao2014发布于10 年前最后回复10 年前8 回复6107 浏览0 收藏

今天遇到个特殊的情况,需要在js中引用页面的数据: 屏幕快照 2016-12-02 上午11.48.23.png 一共有4条数据,但返回了4个相同的数据(都是第3个,还不是最后一个), 表示懵逼了

查看回复

回复 (8)

L
linghao2014#1·10 年前

我怀疑是ejs输出模板中的i不是for循环中的变量i

A
alsotang#2·10 年前
引用 linghao2014我怀疑是ejs输出模板中的i不是for循环中的变量i

@linghao2014 经典的js for循环闭包问题,不是ejs的问题

L
linghao2014#4·10 年前
引用 alsotang@linghao2014 经典的js for循环闭包问题,不是ejs的问题

@alsotang 并不是闭包的问题,push()里面的i是对的。(如果是闭包,也应该得到最后一个的数据)

L
linghao2014#5·10 年前

已解决,分享一下吧。用ejs的循环方式就能成功了

D
DevinXian#6·10 年前

模板渲染和js循环完全搞混了!

F
falost#7·10 年前

模板输出的所有数据好像都是字符串类型吧

G
Galen-Yip#8·10 年前

@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,
			...
		})
	}
}
参与回复
登录后即可参与回复。登录