簡體   English   中英

如何使用JavaScript EJS將服務器端對象傳遞給函數

[英]How to pass serverside object to function using javascript ejs

我需要知道如何將服務器端對象作為參數傳遞給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

這就是我平常做的事

  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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM