vue.js - 在vue组件模板中执行javascript?

标签 vue.js vuejs2

在 vue.js 组件中,我尝试编译模板中的变量,但它没有被编译/转换。任何建议我如何实现以下目标:

<template>
    <img src="{{ window.SETTINGS.ASSETS_DIR + 'img/foo.jpg' }}"/>
</template>

设置位置:

window.SETTINGS = {
  ASSETS_PATH: '/wp-content/themes/my-theme/assets/',
  API_BASE_PATH: '/wp-json/wp/v2/'
}

最佳答案

它不起作用,因为 Vue 不了解 window.SETTINGS 的任何信息。

您应该在 Vue 组件/实例中将 window.SETTINGS 引用到 data 对象中的属性。

data() {
  return {
    settings: window.SETTINGS
  }
}

其他选项可能是扩展 Vue.prototype 如果您需要在整个应用程序中使用它:

Vue.prototype.SETTINGS = {
  ASSETS_PATH: '/wp-content/themes/my-theme/assets/',
  API_BASE_PATH: '/wp-json/wp/v2/'
}

然后您可以通过键入以下内容在任何地方访问它:

this.SETTINGS

最后一步是不使用插值,而是使用绑定(bind):

<img :src="SETTINGS.ASSETS_PATH + 'hello.jpg'" alt="">

关于vue.js - 在vue组件模板中执行javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49814279/

相关文章:

vue.js - 包含 vue app 的 div 中没有任何元素,但显然有

javascript - 如何找到我想要传递信息的Vue组件?

vue.js - Vuejs : is it possible to name Vue instances in vue-devtools?

javascript - Vue 2 改变 v-for 内的数据属性会导致无限循环/问题

javascript - 在 Vue/Laravel 中使用谷歌地图

javascript - VueJS - 将插槽传递给子组件的子组件

javascript - vue 2.6项目中如何使用es2020特性?

javascript - 如何在 vuejs 中验证电子邮件?

java - 无法使用 selenium 单击 <label for ="chk"> 标签内的复选框

vue.js - 使用外部框架将 Vue3 自定义元素添加到 Vue2 应用程序中