首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何基于API请求创建动态链接

如何基于API请求创建动态链接
EN

Stack Overflow用户
提问于 2018-02-18 07:55:23
回答 1查看 619关注 0票数 1

我对vue.js和Javascript都是全新的。如何从Axios请求动态创建导航链接?

我想要跟踪item部分正在做的事情,它目前是静态信息,但我想根据json请求中返回的内容动态返回链接。

代码语言:javascript
代码运行次数:0
运行
复制
import * as types from '../../mutation-types'
import lazyLoading from './lazyLoading'
import charts from './charts'


// gathering items from API
const url = 'http://localhost:8080/items/'    
data: {
  items: []
},
mounted() {
  axios.get(url).then(response => {
    this.results = items.data
  })
}

// Sidebar links are statically created here

const state = {
  items: [
    {
      name: 'Dashboard',
      path: '/dashboard',
      meta: {
        icon: 'fa-tachometer',
        link: 'dashboard/index.vue'
      },
      component: lazyLoading('dashboard', true)
    },
    {
      name: 'Axios',
      path: '/axiosDemo',
      meta: {
        auth: true,
        icon: 'fa-rocket',
        link: 'axios/index.vue'
      },
      component: lazyLoading('axios', true)
    },

    charts,

  ]
}

const mutations = {
  [types.EXPAND_MENU] (state, menuItem) {
    if (menuItem.index > -1) {
      if (state.items[menuItem.index] && state.items[menuItem.index].meta) {
        state.items[menuItem.index].meta.expanded = menuItem.expanded
      }
    } else if (menuItem.item && 'expanded' in menuItem.item.meta) {
      menuItem.item.meta.expanded = menuItem.expanded
    }
  }
}

export default {
  state,
  mutations
}

我想我想要做的事情是这样的(python示例):

代码语言:javascript
代码运行次数:0
运行
复制
items: 
    for i in items_payload:
        {
          name: i.name,
          path: i.url,
          meta: {
              icon: 'fa-tachometer',
              link: i.name+'/index.vue'
                },
        },

如何在vue.js中最好地实现这一点?任何帮助都将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-02-18 08:36:47

如果您从组件发出api请求,则可以创建如下链接列表:

代码语言:javascript
代码运行次数:0
运行
复制
// for demo purposes, let's say links are returned as an array of objects
[
  {
    href: '/path/to/page1',
    linkText: 'Page 1'
  },
  {
    href: '/path/to/page2',
    linkText: 'Page 2'
  }
]

// MyComponent.vue
<template>
  <div class="sidebar">
    <ul>
      <li v-for="(item, index) in items" :key="index">
        <a :href="item.href">{{ item.linkText }}</a>
      </li>
    </ul>
  </div>
</template>

export default {
  data () {
    return {
      links: []
    }
  },
  mounted() {
    axios.get(url).then(response => {
      this.links = items.data
    })
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48847091

复制
相关文章

相似问题

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