Quiero traducir el título <h2>{{$t('vue.'+key.replace('contract_data.',''))}} :</h2> y los mensajes <li>{{error}}</li> , mi colega me dice que transforme todo en métodos en vuejs pero no sé cómo hacerlo. este es mi código:
<div v-if="getError"> <div v-for="(_errors, key) in getError"> <b-alert v-for="error in _errors" show variant="danger" > <h2>{{ $t('vue.'+key.replace('contract_data.','')) }} :</h2> <li>{{ error }}</li> </b-alert> </div> </div>Lo que tu colega quiere es que extraigas la lógica del HTML a Javascript.
Para resolver este problema, su código podría verse así:
template
<div v-if="getError"> <div v-for="(_errors, key) in getError"> <b-alert v-for="error in _errors" show variant="danger" > <h2>{{ formatKey(key) }} :</h2> <li>{{ error }}</li> </b-alert> </div> </div> script
export default { methods: { formatKey (key) { return this.$t('vue.' + key.replace('contract_data.', '')) } } } Bonificación: desde un punto de vista personal, sugeriría agregar un atributo key a sus directivas v-for . (Doc: https://vuejs.org/v2/guide/list.html#Maintaining-State )