[英]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
這就是我平常做的事
通過將服務器端變量/對象附加到隱藏的輸入值,將其嵌入HTML中。 另外,不要忘記將其分類。
在您的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.