【问题标题】:Vue.js jQuery render and binding HTML stringVue.js jQuery 渲染和绑定 HTML 字符串
【发布时间】:2018-01-21 00:21:17
【问题描述】:

是否可以像下面的代码一样在 Vue 中输出/渲染和绑定 HTML 字符串?

...

methods: {
    funcA: function () {
        // some code here
    },
    funcB: function () {
        $('#example').html('<router-link to="/some/path"></router-link>')
    },
    funcC: function () {
        $('#example').html('<a href="" v-on:click="funcA()"></a>')
    }
}

...

感谢您的回复。

【问题讨论】:

  • 你的方法是错误的。你想使用 Vue,所以不要在不必要的时候使用 jQuery。即使有可能,它也会是v-on:click="funcA"。您分配函数,而不是函数执行返回的任何内容(除非函数返回函数)。
  • 那么如果调用 funcB / funcC 并动态生成路由器链接 / 锚点会怎样?
  • 不可能说你想要达到的信息量很少。
  • 你不应该动态生成任何东西。你想要做的是更新状态(例如showRouterLink = true),模板将通过显示你的&lt;router-link&gt;来做出反应。这被称为conditional rendering
  • @connexo 可以说,我想在创建或安装 Vue 或从任何其他触发器动态生成路由器链接/锚点。我应该使用什么最好的方法?

标签: javascript jquery vue.js


【解决方案1】:

router-link

在你的template

<router-link :to="dynamicPath" v-if="dynamicPath"></router-link>

注意:to 中的双冒号。

data() 函数中:

dynamicPath: null

created()/mounted()钩子里:

this.dynamicPath = "/what/ever"

多个router-links

如果您想生成整个 listrouter-links,这将是一种方法:

在你的template:

<router-link v-for="dynamicPath in dynamicPaths" :to="dynamicPath"></router-link>

data()函数中:

dynamicPaths: []

created()/mounted()钩子里:

this.dynamicPaths = [ "/what/ever", "/floats", "/your/boat" ]

【讨论】:

  • 好的,有点明白了。那么如果我必须在 vue 脚本上循环路由器链接,它是怎么回事?
  • 我用 Vue.js 做了 1 年的开发,不需要通过 jQuery 访问 DOM 一次。
  • 你是什么意思,循环?这还是同一个问题吗?
  • 哦,刚开始我的vue体验,觉得vue可以和jquery顺利结合
  • 循环是另一种情况。就像在 html 元素中通过 v-for 循环一样,而是在 vue 脚本中循环
猜你喜欢
  • 1970-01-01
  • 2020-03-14
  • 2014-08-29
  • 2021-01-30
  • 1970-01-01
  • 2016-10-01
  • 2011-07-26
  • 2016-11-13
  • 1970-01-01
相关资源
最近更新 更多