首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JSON数据重定向到另一个页面HTML

问如何使用JSON数据重定向到另一个页面HTML
EN

Stack Overflow用户
提问于 2021-01-05 03:58:52
回答 1查看 177关注 0票数 0

我有动态HTML和从JSON文件中获得的数据。我想重定向到摄影师页面:

​

​

当我点击其中一个摄影师框时:

​

​

在主页中,通常我会使用<a href='x'>标记,但我在JS中使用模板文字,所以我不知道是否可以使用模板文字进行重定向?你知道我怎么重定向吗?

我的JSON文件HERE

这是我的代码:主页

代码语言:javascript
复制
/////////////////////////////////////////// FETCH //////////////////////////////////////////////

function grabTheDataFromJSON(){
  fetch("./../JSON.json")
    .then(response => response.json())
    .then(dataJson => { 
        displayPhotographers(dataJson); //function is invoked here 
        displayByDefault(dataJson)      //function is invoked here 
    }).catch(error => console.error)
};

grabTheDataFromJSON();

///////////////////////////// DISPLAY PHOTOGRAPHERS BY DEFAULT ///////////////////////////////////

function displayByDefault(dataJson){
  dataJson.photographers.forEach(photographe => { 
      const photographersDiv = document.getElementById('container');
      const div = document.createElement("div");
      const photographerTemplate = `
      <div class="photographerContainer">
        <div id="${photographe.name}">
        <div class="portraitBox">
          <img src="${photographe.portrait}" alt="photo">
        </div>
        <h1 class="name">${photographe.name}</h1>
        </div>
        <p class="city">${photographe.city}, ${photographe.country}</p>
        <p class="tagline">${photographe.tagline}</p>
        <p class="price">${photographe.price}€/jour</p>
        <p class="tags">${photographe.tags.map(tag => `<span class="tag">#${tag}</span>`).join(" ")}</p>  
      </div>
      `  
      photographersDiv.appendChild(div);
      div.innerHTML = photographerTemplate;
  }); 
};

摄影师页面

代码语言:javascript
复制
/////////////////////////////////////////// FETCH //////////////////////////////////////////////

fetch('./../JSON.json')
    .then((response) => response.json())
    .then(JsonData => {
          photographerProfil(JsonData)// function invoked here          
    }).catch(error => console.error)

/////////////////////////// PHOTOGRAPHER'S PROFIL TEMPLATE ////////://///////////////////////////

function photographerProfil(JsonData){
    const domDiv = document.getElementById('photographer-container'); 
    const profilTemplate = `
      <div class="profil-container">
        <h2>${JsonData.photographers[0].name}</h2>
        <p>${JsonData.photographers[0].city}, ${JsonData.photographers[0].country}</p>
        <p class="tagline">${JsonData.photographers[0].tagline}</p>
        <p>${JsonData.photographers[0].tags.map(tag => `<button class='tags'>#${tag}</button>`).join(" ")}</p>
        <button id="test">Contactez-moi</button>
        <div class="photoBox">
            <img src="${JsonData.photographers[0].portrait}" alt="photo">
        </div>
      </div>
    `
    domDiv.innerHTML = profilTemplate;
    photographerWork(JsonData)  // function invoked here
    showModal();                // function invoked here
}
EN

回答 1

Stack Overflow用户

发布于 2021-01-05 04:39:35

就HTML或JS而言,字符串就是字符串。如果您以字符串的形式获取URL并将其放入模板中,就像处理其他字符串一样,它应该工作得很好。

所以,就像@terrymorse所说的,像<a href="${photographer.url}">这样的东西应该这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65569034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档