Mi componente de vue es así:
<template>
<div>
<div class="panel-group" v-for="item in list">
...
<div class="panel-body">
<a role="button" data-toggle="collapse" href="#purchase-{{ item.id }}" class="pull-right" aria-expanded="false" aria-controls="collapseOne">
Show
</a>
</div>
<div id="purchase-{{ item.id }}" class="table-responsive panel-collapse collapse" role="tabpanel">
...
</div>
</div>
</div>
</template>
<script>
export default {
...
computed: {
list: function() {
return this.$store.state.transaction.list
},
...
}
}
</script>
Cuando se ejecuta, existe un error como este:
Error de sintaxis de la plantilla de Vue:
id = "compra - {{item.id}}": Se ha eliminado la interpolación dentro de los atributos. En su lugar, utilice v-bind o la abreviatura de dos puntos.
¿Cómo puedo resolverlo?
vue.js
vuejs2
vue-component
samuel toh
fuente
fuente
foo
, la sintaxis v1 sería:my-object="{{ foo }}"
y la sintaxis v2 sería:my-object="foo"
.<div>
etiqueta:<div :id="'purchase-id-' + item._id">
.<div id="purchase-id-5bb254557e1cef3b4cc40529">
class
y:class
para el mismo elemento. Vue.js fusionará los dos atributos. Ver allí: jsfiddle.net/eywraw8t/466181 O si solo desea usar:class
: jsfiddle.net/eywraw8t/466183Si está extrayendo datos de un objeto e imágenes de la carpeta src / assets, debe incluir require ('assets / path / image.jpeg') en su objeto como hice a continuación.
Ejemplo de trabajo:
No en su elemento v-img - No funciona
fuente
Use v-bind o la sintaxis de acceso directo ':' para vincular el atributo. Ejemplo:
fuente
Solo usa
fuente
la forma más fácil es también requerir la dirección del archivo :
<img v-bind:src="require('../image-address/' + image_name)" />
El ejemplo completo a continuación muestra ../assets/logo.png:
fuente
La solución más elegante es guardar imágenes fuera de Webpack. De forma predeterminada, Webpack comprime imágenes en base64, por lo que si guarda imágenes en su carpeta de activos, eso no funciona porque Webpack comprimirá imágenes en base64, y eso NO ES una variable reactiva.
Para resolver su problema, debe guardar sus imágenes en su RUTA PÚBLICA. Por lo general, la ruta pública se encuentra en una carpeta "pública" o "estática".
Finalmente, puede hacer esto:
Y tu HTML puedes hacer esto:
Cuándo usar la carpeta pública
MÁS INFORMACIÓN: "HTML y activos estáticos" en la documentación de Vue JS
fuente