从ejs模板访问localStorage

问题描述 投票:0回答:3

我正在尝试将服务器发送的一些数据保存到客户端 localStorage 中的 EJS 模板中。但是,当我尝试访问模板中的 localStorage 时,我得到 localStorage is undefined 。

这是我的页面的一部分.ejs:

<% localStorage.setItem('info', JSON.stringify({'user': user})) %>

其中 user 是从服务器接收到的值。

这可能吗?

node.js express local-storage ejs
3个回答
2
投票

根据您想要做什么,有几个选项。我看到这篇文章想做一些不同的事情,但这是一种方法:

模板渲染并传递数据后

user
,添加脚本标签进行修改
localStorage

<!-- example.ejs --> 

<!-- check for user on page load --> 
<% if (typeof user != "undefined") { %>
  <!-- make user available to script tag -->
  <% var user = user %>

  <!-- use script tag to access ejs data and local storage -->
  <script>
    let user = <%- JSON.stringify(user) %>;
    localStorage.setItem('info', JSON.stringify({'user': user}));
  </script>
<% } %>

1
投票

一旦对我有用就检查一下,

<script>
  let data =JSON.parse('<%- JSON.stringify(data) %>')
  localStorage.setItem("data", JSON.stringify(data))
</script>

为了访问,

<script>
  let data = JSON.parse(localStorage.getItem("data"))
</script>

0
投票

在撰写本文时,您可以这样做:

<script>
  localStorage.setItem('data', <%- JSON.stringify(data) %>)
</script>

if

data
是视图的本地对象中的一个属性。

© www.soinside.com 2019 - 2024. All rights reserved.