Maison  >  Questions et réponses  >  le corps du texte

Utiliser des variables avec des constantes d'URL dans vue.js

J'essaie de faire fonctionner mon application vue

J'ai créé le fichier constants.js dans lequel je viens de déclarer certaines URL que j'avais l'intention de recycler au lieu de les réécrire à chaque fois, mais certaines d'entre elles avaient besoin d'identifiants de choses

#Example of constant definined in constants.js
export const useVariables = `https://myapiserver.com/iNeedVar1Here/${var1}/iNeedVar2here/${var2}`

Maintenant, je souhaite utiliser cette constante dans mon application vue et transmettre la variable là où c'est nécessaire avant d'envoyer la requête réelle

getItem() {
            let var2 = this.formValues.item2;
            let var1 = this.formValues.item1;
            if (item != null) {
                axios.get(useVariables)
                    .then((res) => {
                        console.log(res.data)
                    })
                    .catch(err => console.log(err));
            }
            else {
                alert('Select an item before preceding')
            }

P粉547170972P粉547170972241 Il y a quelques jours406

répondre à tous(1)je répondrai

  • P粉903052556

    P粉9030525562024-02-22 00:13:19

    Votre constante est statique, ce n'est pas comme une 计算propriété ou quoi que ce soit, c'est juste une chaîne normale, donc ça ne marche pas. Au lieu de cela, vous pouvez créer une fonction qui construit et renvoie l'URL comme ceci :

    export const useVariables = (var1, var2) => `https://myapiserver.com/iNeedVar1Here/${var1}/iNeedVar2here/${var2}`

    Ensuite, vous pouvez construire la constante comme ceci :

    getItem() {
      let var2 = this.formValues.item2;
      let var1 = this.formValues.item1;
      if (item != null) {
        axios.get(useVariables(var1, var2))
          .then((res) => {
            console.log(res.data)
          })
          .catch(err => console.log(err));
      } else {
        alert('Select an item before preceding')
      }
    }
    

    répondre
    0
  • Annulerrépondre