【问题标题】:How to pass serverside object to function using javascript ejs如何使用 javascript ejs 将服务器端对象传递给函数
【发布时间】:2019-07-05 12:43:51
【问题描述】:

我需要知道如何将服务器端对象作为参数传递给 javascript 和 ejs 中的 javascript 函数

我有头文件,onclick 函数生成 url 但我需要将服务器端对象作为参数传递给函数

server.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
   var obj ={"contact" : "fs-xi-fs-men", "aboutus" : "guan-yu-men"}
   res.render('index.ejs', {lang: obj});
})

header.ejs
 <a class="nav-link" href="javascript:" onclick="redirect('about-us')">About Us</a> // pass server side obj i.e redirect(lang) 
<a class="nav-link" href="javascript:" onclick="redirect('contact')">Contact Us</a>


helper.js
function redirect(path){ // pass serverside object to function in js
    var urlpath = window.location.origin+"/"+en+"/"+path; //www.abc.com/en/fs-xi-fs-men 
    window.location.href = urlpath;
}

tried using
//index.ejs
<%- include('header', {tr: lang}) %> //not working

【问题讨论】:

    标签: javascript html node.js express ejs


    【解决方案1】:

    这是我经常做的事情

    1. 通过将服务器端变量/对象附加到隐藏的输入值,将其嵌入 HTML。另外,不要忘记将其字符串化。

    2. 在您的 javascript 中,获取该输入值,将其解析回一个对象,然后您就可以在您的 javascript 代码中使用它了!

    <html>
      <input id="lang-input" type="hidden" value="<%= JSON.stringify(lang) %>">
    
      <!-- Include JQUERY -->
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <script>
    
        // wait for HTML to fully load
        $(function() {
          // grab lang variable
          var lang = JSON.parse($('#lang-input').val());
    
          // now you have lang object and can do whatver you want!
        });
      </script>
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      相关资源
      最近更新 更多