是的,可以让.js页面从.ejs页面读取值。
.ejs是一种嵌入式JavaScript模板引擎,可以在服务器端动态生成HTML代码。它允许将JavaScript代码嵌入到HTML页面中,并通过模板变量来传递数据。
在.ejs页面中,可以通过设置变量来传递值。例如,在.ejs页面中定义一个名为"message"的变量,可以将其值设置为任意内容,比如"Hello World"。
<% var message = "Hello World"; %>
然后,在.js页面中,可以通过引入.ejs文件,并使用模板变量来读取这个值。
var ejs = require('ejs');
var fs = require('fs');
fs.readFile('example.ejs', 'utf8', function (err, data) {
if (err) throw err;
var rendered = ejs.render(data, { message: "Hello World" });
console.log(rendered); // 输出: Hello World
});
这里使用了Node.js中的fs模块来读取.ejs文件的内容,然后使用ejs.render方法将模板变量传递给.ejs文件并进行渲染。
需要注意的是,.ejs文件是在服务器端渲染的,所以无法直接从前端的.js文件中读取.ejs页面的值。如果需要从前端页面中读取值,可以通过后端提供API接口的方式来实现。例如,前端通过AJAX请求后端API,后端返回.ejs页面中的值供前端使用。
总结起来,通过ejs模板引擎,可以让.js页面从.ejs页面读取值,但需要在服务器端进行处理,并通过后端提供API接口的方式来实现前后端数据的传递。
领取专属 10元无门槛券
手把手带您无忧上云