ejs模板数据传入js

最近项目遇到后台数据传入ejs模板,但前端因为制作聊天室功能需要,用户的信息。通过jade方法的思考,和查阅资料找到方法。

第一步

<script>
var uid = ‘<%=user._id%>‘

<script>

原理:后台模板原理就是拼接字符串,所以可以直接使用ejs语法,在html页面内部,将后台模板值赋给一个变量

问题:如果在引用一个外部js,发现外部js并不能使用该方法得到值,原因就是外部js属于服务器静态文件,只有.ejs文件才能拿到后台数据

第二部(解决上一个问题)

解决方式:外部不能引用就内部引用喽,var 一个全局变量自然就传递过去了

<script>
var uid = ‘<%=user._id%>‘

<script>

<script src="/static/js/out.js"></script>

问题:传递一个字符串是可以了,但当你传递var uid = ‘<%=user%>‘一整个对象时候发现拿到值是[object object]

第三步(同上)

解决方式:发现ejs的转义语法并不能转出我们想要的对象,所以先用ejs语法将其字符串化,在用非转义直接复制给一个变量。使用时在将字符串对象转义回真正对象。

<script>

var user = ‘<%- JSON.stringify(user) %>‘

</script>

out.js

console.log(JSON.parse(user));

时间: 2024-10-12 02:44:41

ejs模板数据传入js的相关文章

【Node.js基础篇】(八)安装Express 3.2框架以及ejs模板

Html模板以及路由文件等服务器必备的功能虽然我们都可以自己实现,但在稳定性.可靠性.全面性方面肯定是有所遗漏的,所以,从今天起,Node的学习就进入了框架学习部分. 维基百科: 框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作.或者说使用别人搭好的舞台来做编剧和表演. 第一个要学习的框架是在Node中被广泛应用的框架--Express. 安装Express 如果你使用的Node开发环境是WebStorm的话,在新建工程的时候可以直接选新建Node工程,它会给你

模板的数据传入时间的坑

昨天遇到一个坑,传入子模板的数据出不来. 是因为使用vue-resource取json数据,而vue-resource是异步的 所以页面dom完成时,数据还未得到,当子模板的v-dom渲染依赖于传入数据的一次计算时,页面就无法出现. 这时候需要用computed(watch)监控数据. 另外,测试确定,模板参数传入节点和dom渲染同时的,即beforeCreate后 created前 原文地址:https://www.cnblogs.com/mobu/p/10090743.html

模板引擎doT.js

作为一名前端攻城师,经常会遇到从后台ajax拉取数据再显示在页面的情境,一开始我们都是从后台拉取再用字符串拼接的方式去更达到数据显示在页面! <!-- 显示区域 --> <div id="testid"></div> <script type="text/javascript"> var testjson={"name":"张三","age":31,"

NodeJS - Express 3.0下ejs模板使用 partial展现 片段视图

如果你也在看Node.js开发指南,如果你也在一步一步实现 microBlog 项目!也许你会遇到本文提到的问题,如果你用的是Express 3.0 本书实例背景是 Express 2.0 而如今升级到 3.0后去掉了一些老的方法也更新了一些新的,所以变化还是蛮大的. 首先上一篇博客提到的一个问题: 如何用Express 3.0 生成一个 ejs 模板项目 前提是你已经下载了ejs包,如何下载,运行cmd 输入 npm install ejs -g 2.0 下的语法是:express -t ej

node(4)express 框架 EJS模板,cookie, session的学习

一.EJS 概述:前端咱们使用过的一个模板套路,是underscore的套路.接下来EJS它属于后台工程师人的模板. https://www.npmjs.com/package/ejs 官网地址 特点: Control flow with <% %>             流程控制语句用的是<% %>   :例如if   for循环等等 Escaped output with <%= %> (escape function configurable)     如果有赋

Nodejs WEB服务器 静态文件托管、 GET POST路由 EJS模板引擎(8)

1 Nodejs 静态文件托管 略 2. 路由 官方解释:路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET. POST 等)组成的, 涉及到应用如何响应客户端对某个网站节点的访问. 非官方解释:路由指的就是针对不同请求的 URL, 处理不同的业务逻辑.  3 路由静态文件提取 原 `services.js` 代码 // 引入模块 var http = require('http'); // fs 模块 var fs =require('fs'); // p

EJS模板引擎

一.什么是模板引擎? 是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 常用的模板引擎有ejs .jade.smarty等. 二.为什么需要模板引擎? 前端开发的时候,经常有根据后台返回的数据,然后根据此数据生成html,最后渲染到页面中.比如: var data = [ {name: "leaf1"}, {name: "leaf2"}, {name: "leaf3"}

Django:之传递数据给JS、Ajax和Ajax CSRF认证

Django传递数据给JS 有时候我们想把一个list或者dict传递给javascript,处理后显示到网页上,比如要用js进行可视化到数据. 请注意:如果是不处理,直接显示在网页上,用Django模版就可以了,请看前面的教程. 这里讲述两种方法: 一.页面加载完成后,在页面上操作,在页面上通过ajax方法得到新的数据(再向服务器发送一次请求)并显示在网页上,在这种情况适用于页面不刷新的情况下,动态加载一些内容.比如用户输入一个值或者点击某个地方,动态地把相应内容显示在网页上. 这种请详见下面

发布一个开源极致的javascript模板引擎tpl.js

tpl.js(大家直接去https://git.oschina.net/tianqiq/tpl.js这个上面看) 简介 tpl.js是一个比较极致(极小,极快,极简单)的js模板引擎,可以在各种js环境中使用. 特性 1. 使用js作为模板语言,几乎无学习成本 2. 小巧,速度快到极致 3. 极简的语法,模板书写非常流畅 4. mit开源,无限制 语法说明 简述 tpl.js中模板语法中以行为单一,分为js行语句,和输出行语句.顾名思义,js行语句是编译时候会当做js执行的语句, 而输出行语句,