当前位置: 首页 > 知识库问答 >
问题:

如何在超文本标记语言的其他部分使用来自API响应的id

鲜于阳
2023-03-14

我试图让我的代码动态不使用任何硬代码。为此,我想使用来自API的id。

这是我的API响应:[/infos]

    [
        ...

      {
        "id": 7,
        "name": "Highway",
        "price": "High",
        "min": "785",
        "max": "1856",
        "tag": null,
      },
      {
        "id": 8,
        "name": "Lowway",
        "price": "low",
        "min": "685",
        "max": "1956",
        "tag": null,
      } 

      ...

    ]

这是我的Component.vue:

<div class="vx-row">
    <div class="vx-col w-full md:w-1/2 mb-base" v-for="info in infos" :key="info.id">
          <vx-card>
             <div class="header">
               <div class="left">
                 <img src="./img/info_8_logo.png" alt=""/>            <-- Hard coded value ie 8
                 <b>{{info.name}}</b>
               </div>
             <div class="right">
                  <vs-button @click="$router.push({name: 'letsCheck', params: {viewContentId: '8' }}).catch(err => {})">Explore</vs-button> 
                          <-- Above as a Hard-coded value ie 8 -->
                   {{mes.this_is_showing_only_data_of_id8}}       
             </div>
           </div>
          </vx-card>
      </div>
    </div>

<script>
infos: [],
mes: []
...
created () {
  this.$http.get('/infos')                                           
    .then((response) => { this.infos = response.data })
    .catch((error) => { console.log(error) })
   
  this.$http.get('/messages/8/tick')                                  <-- Hard coded value
    .then((response) => { this.mes = response.data })
    .catch((error) => { console.log(error) })

}
</script>

正如您所看到的my Component.vue,我显示了8张卡,每张卡显示的内容与我硬编码id为8的内容相同。因此,我想知道如何在HTML和其他脚本中使用来自/infosendpoint的API响应的id。

还要注意的是,来自API的id只是一个数字,所以我想知道如何将其转换为字符串。然后是如何在其他HTML和脚本中使用它。

请帮助我在这我想把ID从API来的任何意见,我在Component.vue.

共有1个答案

巫马星雨
2023-03-14

这里的最佳实践是,您需要为您的消息创建一个新组件,并在组件传递中作为道具使用id,并使用此id动态构建消息组件。Message.vue

    <template>
             <div class="right">
                  <vs-button @click="$router.push({name: 'letsCheck', params: {viewContentId: id }}).catch(err => {})">Explore</vs-button> 
                         
                   {{mes.my_key_name}}       
             </div>
           </template>

<script>
mes: []
...
  props: {
    id: {
      type: String,
      required: true,
    },
  },
created () {  
  this.$http.get(`/messages/this.id/tick`)                                 
    .then((response) => { this.mes = response.data })
    .catch((error) => { console.log(error) })

}
</script>

pp.vue将是:

<div class="vx-row">
    <div class="vx-col w-full md:w-1/2 mb-base" v-for="info in infos" :key="info.id">
          <vx-card>
             <div class="header">
               <div class="left">
                 <img :src="`./img/info_${info.id}_logo.png`" alt=""/>            
                 <b>{{info.name}}</b>
               </div>
             <message :id="info.id.toString()"></message>
           </div>
          </vx-card>
      </div>
    </div>

<script>
infos: [],
...
created () {
  this.$http.get('/infos')                                           
    .then((response) => { this.infos = response.data })
    .catch((error) => { console.log(error) })
   
</script>

我相信我更新了所有硬编码的值,并且按照您的要求将info id转换为字符串。

请让我知道:)

 类似资料:
  • 我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加

  • 我是新来的。我想解析html,但问题是我们必须在中指定的URL,我将在运行时从其他页面响应此URL。有没有办法将收到的网址传递到中?我读过这样的东西: 但是我不知道如何使用它。我很想知道是否有其他方法比jsoup更好。

  • 对于上面的html内容,我如何使用Jsoup解析并获取文本 当我使用 我得到了这样的东西

  • 布局/模板文件在中定义: 然后在中产生: 两个文件都存在于同一个目录中,并且web.php中定义了的路由: 然而,导航到时唯一显示的是未定义的“error”,我将它作为帮助程序的第二个参数传递给它。在浏览器中检查显示未加载该节。 由于模板继承在没有错误的情况下悄无声息地失败,而且因为Laravel显然甚至没有打印警告的直观方式,这样一个基本的用例对我来说似乎不可能调试。 这里发生了什么,或者,我将

  • 我正在想办法完全自动化詹金斯的硒测试。 我的全部想法是:我想用Selenium IDE记录一个测试。然后将测试另存为HTML代码。将HTML文件放在test1中。和詹金斯一起在服务器上测试。Jenkins应该根据HTML文件的信息进行测试。 最后一句话现在是问题所在。我找不到一种简单的方法将HTML文件转换成可能的JUnit测试并运行它。 我找到了selenese4j,这个想法很好,但它只返回测试

  • 我有一些信息要在对话框中显示。它像标题,然后在它下面的文本;标题,然后在它下面的文本。像wise一样,有4个标题和4个描述要显示。它应该是这样的 描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述 描述描述描述描述描述描述描述描述描述描述描述描述描述描述描述 如您所见,有粗体文本、下划线文本、换行符等。我想将这种文本添加到警报框中,所以下面是我尝试的。 然而,这个技巧没有奏效。发生的是,