【问题标题】:Vuejs - Render raw html links to <router-link>Vuejs - 将原始 html 链接渲染到 <router-link>
【发布时间】:2018-11-15 16:07:51
【问题描述】:

我是 VueJS 的新手,我正在做一些奇怪的实验。我使用 python/flask 构建了一个后端服务,这个后端为我提供了一串包含许多标签的 html 代码,我想在我的 Vue 应用程序中呈现它,我有一个调用后端的方法,如下所示:

async execute (method, resource, data) {
    return client({
      method,
      url: resource,
      data: data
    }).then(async req => {
      return req.data.html
    })
  },
  callBack (id) {
    console.log(id)
    return this.execute('post', '/content/', {body: { 'id': id }})
  }

在 .vue 文件中我有:

export default {
  data () {
    return {
      loading: false,
      launch: [],
      html: 'none',
      page: this.$route.params.article
    }
  },
  beforeMount () {
    console.log('beforeee')
    this.html = api.callBack(this.page)
  },
  methods: {
    async launch () {
      this.launch = ''
      this.html = await api.callBack(this.page)
    }
  }
}

因此,当我调用启动函数时,它会填充 this.html,并且此 html 变量位于 v-html 中。一切似乎都可以正常工作,我获取 html 并将其呈现在 de 容器中,但链接已损坏,链接应该指向同一个应用程序,例如#/test/linkvalue,但由于它们是标签,在 vue 中你必须使用它们不起作用。

有办法实现这种“动态重新路由”还是我做的事情太奇怪了? 链接很多,因为它们是从网络上抓取的,所以手动解析不是一种选择。

JSFiddle

提前感谢您的帮助

【问题讨论】:

  • 只是出于好奇:如果你有一个 Vue 应用程序,为什么要在服务器上生成 html?
  • 嗨!我只是在做一些实验。这个想法是使用服务器报废网络做一些预处理,存储并将html或其他内容返回给应用程序进行渲染。

标签: javascript html vue.js frontend


【解决方案1】:

此外,您不应返回原始 html。只需返回路径的路径,然后循环路径并以这种方式创建链接。

您可以使用 v-html vue 指令来输出原始 html。

https://jsfiddle.net/eywraw8t/66262/

new Vue({
  el: "#app",
  data: {
    rawhtml: "<h1 style='color: red;'>Hi, I am raw html.</h1>"
  },
  methods: {    
  }
})


<div id="app">
  <div v-html="rawhtml"></div>
</div>

【讨论】:

  • 我有类似的东西,但是 html 中的链接已经死了。根据文档,它们应该是 。需要明确的是,html 可以正常工作和呈现,但是链接,内部的 标记是不起作用的。
  • @RolandDeschain 你能创建一个 js fiddle 来复制它吗?
  • 嗨,我做了这个jsfiddle.net/u1Lbro0q 现在调用启动中的图像 html 变量填充了许多指向 vue 路由器中定义的 #/route/x 的链接,但链接不起作用我点击它们,什么也没有。
  • 事实上,链接确实会改变浏览器中的 url,但是页面不会重新加载,视图也不会相应地使用新的 url 重新加载。
  • @RolandDeschain 如果您将 html 链接更改为 google.com,它可以正常工作。您可以将您的 vue 路由器代码添加到您的问题中吗?
猜你喜欢
  • 2019-06-12
  • 2012-12-16
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
相关资源
最近更新 更多