Quiero activar uno de los 3 métodos según los datos que se encuentran en la subdescripción. A partir de ahora, funciona bien si los datos son "Video" y, en todo caso, activa el método myClick2. Estoy tratando de agregar una tercera opción en la que verifique si dice "Póster". Si dice poster, para activar otro método (myClicky). Cualquier otra cosa, muestra myClick2.
new Vue({ el: "#app", data: { chocs:[] }, methods: { handleTileClick: function(){ alert("test"); }, myClick2: function(){ alert("test2"); }, myClicky: function(){ alert("tested"); }, } }) <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <div class="card" v-on:click="choc.subdescription==='Video'?handleTileClick():myClick2()"></div> </div>Puede definir un nuevo método que acepte la subdescription y devuelva la función a llamar. Esto se usaría como un valor para el controlador de clics:
new Vue({ el: "#app", data: () => ({ chocs: [ { subdescription: 'Video' }, { subdescription: 'Poster' }, { subdescription: 'Other' } ] }), methods: { getOnClickFn: function(subdescription) { let fn; switch(subdescription) { case 'Video': fn = this.handleTileClick; break; case 'Poster': fn = this.myClicky; break; default: fn = this.myClick2; break; } return fn; }, handleTileClick: function() { alert("test"); }, myClick2: function() { alert("test2"); }, myClicky: function() { alert("tested"); } } }); <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <div class="card" v-for="{ subdescription } in chocs" :key="subdescription" @click="() => getOnClickFn(subdescription)()" >Click {{subdescription}}</div> </div>