Meu componente vue é assim:
<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>
Quando executado, existe um erro como este:
Erro de sintaxe do modelo Vue:
id = "compra - {{item.id}}": A interpolação dentro dos atributos foi removida. Use v-bind ou a abreviação de dois pontos.
Como posso resolver isso?
vue.js
vuejs2
vue-component
samuel toh
fonte
fonte
foo
, a sintaxe v1 seria:my-object="{{ foo }}"
e a sintaxe v2 seria:my-object="foo"
.<div>
tag:<div :id="'purchase-id-' + item._id">
. Exemplo de renderização:<div id="purchase-id-5bb254557e1cef3b4cc40529">
class
e:class
para o mesmo elemento. Vue.js irá mesclar os dois atributos. Veja lá: jsfiddle.net/eywraw8t/466181 Ou se você deseja usar apenas:class
: jsfiddle.net/eywraw8t/466183Se você está puxando dados de um objeto e imagens da pasta src / assets, você precisa incluir require ('assets / path / image.jpeg') em seu objeto, como fiz abaixo.
Exemplo de trabalho:
Não está em seu elemento v-img - Não funciona
fonte
Use v-bind ou sintaxe de atalho ':' para vincular o atributo. Exemplo:
fonte
Apenas use
fonte
a maneira mais fácil é exigir o endereço do arquivo :
<img v-bind:src="require('../image-address/' + image_name)" />
o exemplo completo abaixo mostra ../assets/logo.png:
fonte
A solução mais elegante é salvar as imagens fora do Webpack. Por padrão, o Webpack compacta imagens em base64, portanto, se você salvar imagens em sua pasta de ativos, isso não funcionará porque o Webpack compactará imagens em base64, e isso NÃO É uma variável reativa.
Para resolver seu problema, você precisa salvar suas imagens em seu CAMINHO PÚBLICO. Normalmente, o caminho público está na pasta "pública" ou "estática".
Finalmente, você pode fazer isso:
E seu HTML, você pode fazer isso:
Quando usar a pasta pública
MAIS INFORMAÇÕES: "HTML and Static Assets" na documentação do Vue JS
fonte