如何使获取动态链接JavaScript
我正在尝试使如何使获取动态链接JavaScript,javascript,Javascript,我正在尝试使fetch('/fetchDataAll')动态。取决于单击的按钮。有人帮忙吗 JavaScript class DbApi { constructor() { } async getDbData() { const dataResponse = await fetch('/fetchDataAll') const dataJson = await dataResponse.json() return da
fetch('/fetchDataAll')
动态。取决于单击的按钮。有人帮忙吗
JavaScript
class DbApi {
constructor() {
}
async getDbData() {
const dataResponse = await fetch('/fetchDataAll')
const dataJson = await dataResponse.json()
return dataJson
}
}
// the object that maps the data-fetcher attributes to their equivalent functions
const fetcherObject = {
all: fetchAll,
rookies: fetchRookies,
ufra: fetchUrfa
};
const bestBtn = document.querySelector('.jsBestBtnList')
bestBtn.addEventListener("click", function (e) {
let target = e.target;
let fetchFn = fetcherObject[target.dataset.fetcher];
if (fetchFn) {
fetchFn();
}
});
let show = document.querySelector('#show')
const dbApi = new DbApi
function fetchAll(){
dbApi.getDbData()
.then(data => {
show.innerHTML = "";
let players = data.result; // Get the results
show.innerHTML = players.map(player => {
let colorToChange = "";
let plusMinusSign = "";
let colorWhite = "#FFFFFF";
if (player.scoreChange >= 0) {
colorToChange = "#66FF13";
plusMinusSign = "+";
}
else {
colorToChange = "#D0021B";
plusMinusSign = "";
}
return `<p style='color:${colorWhite}'>${player.playerName}</p>
<p style='color:${colorWhite}'>${player.teamName}</p>
<h3 style='color:${colorToChange}'>${plusMinusSign} ${player.scoreChange} %</h3>`
}).join('')
})
.catch(function (error) {
console.log(error);
});
}
DbApi类{
构造函数(){
}
异步getDbData(){
const dataResponse=wait fetch('/fetchDataAll')
const dataJson=wait dataResponse.json()
返回数据JSON
}
}
//将数据获取程序属性映射到其等效函数的对象
常量fetcherObject={
全部:全部,
新秀:新秀,
ufra:fetchUrfa
};
const bestBtn=document.querySelector('.jsBestBtnList')
最佳BTN.addEventListener(“单击”,函数(e){
设target=e.target;
让fetchFn=fetcherObject[target.dataset.fetcher];
如果(fetchFn){
fetchFn();
}
});
let show=document.querySelector(“#show”)
const dbApi=新的dbApi
函数fetchAll(){
dbApi.getDbData()
。然后(数据=>{
show.innerHTML=“”;
让players=data.result;//获取结果
show.innerHTML=players.map(player=>{
让颜色改变=”;
让plusMinusSign=“”;
让colorWhite=“#FFFFFF”;
如果(player.scoreChange>=0){
colorToChange=“#66FF13”;
plusMinusSign=“+”;
}
否则{
colorToChange=“#D0021B”;
plusMinusSign=“”;
}
返回`${player.playerName}
{
//…代码的其余部分
})
.catch(函数(错误){
console.log(错误);
});
}
函数fetchUrfa(){
dbApi.getDbData('/fetchDataUfra')
。然后(数据=>{
//…代码的其余部分
})
.catch(函数(错误){
console.log(错误);
});
}
函数fetchRookies(){
dbApi.getDbData(“/fetchDataRookies”)
。然后(数据=>{
//…代码的其余部分
})
.catch(函数(错误){
console.log(错误);
});
}
全部取回
取回不明飞行物
招新人
您可以像这样添加和修改代码(其余代码保持不变)
//新代码
//给定按钮的URL(根据需要更改)
常量URL={
全部:'/url1',
新手:'/url2',,
ufra:/‘url3’
};
异步getDbData(url){//在此处传递参数
const dataResponse=wait fetch(url)//此处
const dataJson=wait dataResponse.json()
返回数据JSON
}
const bestBtn=document.querySelector('.jsBestBtnList')
最佳BTN.addEventListener(“单击”,函数(e){
设target=e.target;
让fetchFn=fetcherObject[target.dataset.fetcher];
//获取url的方式与获取函数的方式相同
让arg=URL[target.dataset.fetcher];
if(fetchFn){
fetchFn(arg);//在此处传递参数
}
});
函数fetchAll(url){//将其传递到此处
dbApi.getDbData(url)//这里也是
...
...
…
您可以向getDbData添加url参数,如下所示:
class DbApi {
constructor() {
}
async getDbData(url) {
const dataResponse = await fetch(url)
const dataJson = await dataResponse.json()
return dataJson
}
}
const bestBtn = document.querySelector('.jsBestBtnList')
bestBtn.addEventListener("click", function (e) {
let target = e.target;
let url = target.dataset.url;
if (url) {
fetchUrl(url);
}
});
let show = document.querySelector('#show')
const dbApi = new DbApi
function fetchUrl(url){
dbApi.getDbData(url)
.then(data => {
show.innerHTML = "";
let players = data.result; // Get the results
show.innerHTML = players.map(player => {
let colorToChange = "";
let plusMinusSign = "";
let colorWhite = "#FFFFFF";
if (player.scoreChange >= 0) {
colorToChange = "#66FF13";
plusMinusSign = "+";
}
else {
colorToChange = "#D0021B";
plusMinusSign = "";
}
return `<p style='color:${colorWhite}'>${player.playerName}</p>
<p style='color:${colorWhite}'>${player.teamName}</p>
<h3 style='color:${colorToChange}'>${plusMinusSign} ${player.scoreChange} %</h3>`
}).join('')
})
.catch(function (error) {
console.log(error);
});
}
<button class="fetcher-btn" data-url="/fetchDataAll">Fetch all</button>
<button class="fetcher-btn" data-url="/fetchDataUfra">Fetch ufra</button>
<button class="fetcher-btn" data-url="/fetchDataRookies">Fetch rookies</button>
DbApi类{
构造函数(){
}
异步getDbData(url){
const dataResponse=等待获取(url)
const dataJson=wait dataResponse.json()
返回数据JSON
}
}
const bestBtn=document.querySelector('.jsBestBtnList')
最佳BTN.addEventListener(“单击”,函数(e){
设target=e.target;
让url=target.dataset.url;
如果(url){
获取url(url);
}
});
let show=document.querySelector(“#show”)
const dbApi=新的dbApi
函数fetchUrl(url){
dbApi.getDbData(url)
。然后(数据=>{
show.innerHTML=“”;
让players=data.result;//获取结果
show.innerHTML=players.map(player=>{
让颜色改变=”;
让plusMinusSign=“”;
让colorWhite=“#FFFFFF”;
如果(player.scoreChange>=0){
colorToChange=“#66FF13”;
plusMinusSign=“+”;
}
否则{
colorToChange=“#D0021B”;
plusMinusSign=“”;
}
返回`${player.playerName}
确定,但什么可以