Как генерировать URL в JavaScript - PullRequest
0 голосов
/ 05 июля 2019

Я хотел бы знать, как генерировать URL для разных языков в JavaScript.

сервер отправляет данные json во внешний интерфейс, у меня есть файл заголовка и вспомогательная функция для генерации URL в javascript.

Как использовать объект отправки сервера в качестве параметра в функции перенаправления и генерировать URL как

www.xyx.com/en/lian-xi-wo-men 
www.xyz.com/en/guan-yu-wo-men
server.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
var obj ={
"contact" : "lian-xi-wo-men", 
"url" : {"aboutus" : "guan-yu-wo-men"}
}
       res.render('index.ejs',{lang: JSON.stringify(obj)} );
})

tried <a class="nav-link" href="/<%= lang.url.aboutus  %>">About Us</a> // getting error as aboutus not defined.

header.ejs

 <a class="nav-link" href="javascript:" onclick="redirect('about-us')">About Us</a>
<a class="nav-link" href="javascript:" onclick="redirect('contact')">Contact Us</a>


helper.js
function redirect(path){
    var urlpath = window.location.origin+"/"+en+"/"+path;
    window.location.href = urlpath;
}

1 Ответ

0 голосов
/ 05 июля 2019

Я думаю, что вы подходите к проблеме совершенно неправильно.Вам не нужен JavaScript вообще.Просто используйте тег href, чтобы выполнить то, что вы хотите

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


header.ejs
// tried this not working
<a class="nav-link" href="/en/<%= lang.url.aboutus %>">About Us</a> //not working
//
<a class="nav-link" href="/en/<%= aboutus %>">About Us</a>
<a class="nav-link" href="/en/<%= contact %>">Contact Us</a>


Если вы действительно хотите передать объект на стороне сервера.Это обычный подход для этого.

  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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...